一. 服务端代码:
importar java.net.*; // para soquete, servidorsocket e inetaddress importar java.io.*; // para IoException e Input/OutputStream Public Class tcPechoserver {private estático final int bufsize = 32; // tamanho do buffer de recebimento public static void main (string [] args) lança ioexception {int servport = 5500; // Crie um soquete do servidor para aceitar a conexão do cliente Solicita o servidorsocket servsock = new ServerSocket (servport); int recvmsgSize; // tamanho da mensagem recebida byte [] recebaBuf = novo byte [bufsize]; // Receba buffer enquanto (true) {// executa para sempre, aceitando e atendendo conexões soquete clntsock = servsock.accept (); // Obter conexão com o cliente SocketAddress clientAddress = clnttsock.getRemoteSocketAddress (); System.out.println ("Handling Client em" + ClientAddress); InputStream in = clnttsock.getInputStream (); OutputStream out = clntsock.getOutputStream (); // Receba até que o cliente feche a conexão, indicado por -1 Return while (RecvmsgSize = in.read (RecendBuf))! = -1) {out.Write (RecendBuf, 0, RecvmsgSize); } clntsock.close (); // Feche o soquete. Terminamos este cliente! } / * Não alcançado * /}}二. 客户端代码:
importar java.net.*; importar java.io.*; classe pública tcPechoclient {public static void main (string [] args) lança ioexception {string server = "127.0.0.1"; // nome do servidor ou endereço IP int servport = 5500; //// servidor porta byte [] data = "oi, mundo" .getBytes (); // Crie soquete conectado ao servidor no soquete de porta especificado = novo soquete (servidor, servport); System.out.println ("conectado ao servidor ... enviando string echo"); InputStream in = socket.getInputStream (); OutputStream out = Socket.getOutputStream (); out.write (dados); // Envie a sequência codificada para o servidor // Receba a mesma string de volta do servidor int totalByTesRCVD = 0; // bytes totais recebidos até agora int bytesrcvd; // bytes recebidos na última leitura while (totalbytesrcvd <data.length) {if ((bytesrcvd = in.read (dados, totalbytesrcvd, data.length - totalbytesrcvd)) == -1) lançar uma nova sonda ("conexão fechada prematuramente"); totalBytesrcvd += bytesrcvd; } // Data Array é completo System.out.println ("Recebido:" + new String (Data)); Socket.Close (); // Feche o soquete e seus fluxos}}上述代码的 TCP 服务端是单线程 , 一次只能服务一个客户端。
查看更多 Java 的语法 , 大家可以关注 : : Pensando em java 中文手册》、《 jdk 1.7 参考手册官方英文版》、《 jdk 1.6 api java 中文参考手册》、《 jdk 1.5 api java 中文参考手册》 , 也希望大家多多支持武林网。