一. 服务端代码 :
import java.net.*; // para el socket, ServerSocket e inetaddress import java.io.*; // para IOException y Entrada/OutputStream Public Class TCPeCHoserver {private static final int bufSize = 32; // Tamaño del búfer de recepción public static void main (string [] args) lanza ioexception {int servport = 5500; // Cree un socket de servidor para aceptar solicitudes de conexión del cliente Serversocket ServSock = New Serversocket (Servport); int recvmSgSize; // tamaño del mensaje recibido byte [] recibeBuf = new byte [bufsize]; // Recibe búfer mientras (verdadero) {// ejecuta para siempre, aceptando y servicio de conexiones socket clntsock = servsock.accept (); // Obtener la conexión del cliente SocketAddress ClientAddress = clntsock.getRemotesocketAddress (); System.out.println ("Manejo del cliente en" + ClientAddress); InputStream in = clntsock.getInputStream (); OutputStream out = clntsock.getOutputStream (); // recibir hasta que el cliente cierre la conexión, indicado por -1 return while ((recvmSgSize = in.read (recibeBuf))! = -1) {out.write (recibeBuf, 0, RecvmSgSize); } clntsock.close (); // Cierre el enchufe. ¡Hemos terminado con este cliente! } / * No alcanzado * /}}二. 客户端代码 :
import java.net.*; import java.io.*; public class tcPeChoclient {public static void main (string [] args) lanza IOException {String Server = "127.0.0.1"; // Nombre del servidor o dirección IP int servport = 5500; //// Servidor Port byte [] data = "Hi, World" .getBytes (); // Crear socket que esté conectado al servidor en el puerto especificado Socket Socket = new Socket (servidor, Servport); System.out.println ("conectado al servidor ... enviando cadena de eco"); InputStream in = Socket.getInputStream (); OutputStream out = Socket.getOutputStream (); out.write (datos); // Envía la cadena codificada al servidor // recibir la misma cadena nuevamente del servidor int totalbytesrcvd = 0; // bytes totales recibidos hasta ahora int bytesrcvd; // bytes recibidos en la última lectura while (totalbytesrcvd <data.length) {if ((bytesrcvd = in.read (data, totalbytesrcvd, data.length - totalbytesrcvd)) == -1) tire nueva socketexception ("conexión cerrada prematuramente"); Totalbytesrcvd += bytesrcvd; } // La matriz de datos es completa System.out.println ("Recibido:" + nueva cadena (datos)); socket.close (); // Cierre el socket y sus transmisiones}}上述代码的 TCP 服务端是单线程 一次只能服务一个客户端。 一次只能服务一个客户端。
查看更多 java 的语法 , : : 《pensando en java 中文手册》、《 jdk 1.7 参考手册官方英文版》、《 jdk 1.6 api java 中文参考手册》、《 jdk 1.5 api java 中文参考手册》 也希望大家多多支持武林网。 也希望大家多多支持武林网。