一. 服务端代码 :
importer java.net. *; // pour Socket, Serversocket et InetAddress Import Java.io. *; // pour ioException et entrée / outputStream public class tcpeChoServer {private static final int bufsize = 32; // Taille du tampon de réception public static void main (String [] args) lève ioException {int servport = 5500; // Créez une prise de serveur pour accepter les demandes de connexion du client Serversocket ServSock = new SERVERSocket (servport); int recvmsgsize; // Taille de l'octet de message reçu [] receseBuf = nouveau octet [bufSize]; // Recevoir le tampon while (true) {// Exécuter pour toujours, accepter et entretenir les connexions socket clrstock = servsock.accept (); // Obtenez la connexion client socketAddress ClientAddress = clrstock.getRemotesocketAddress (); System.out.println ("Gestion du client sur" + clientAddress); InputStream dans = clrstock.getInputStream (); OutputStream out = clrstock.getOutputStream (); // Recevoir jusqu'à ce que le client ferme la connexion, indiquée par -1 retour while ((recvmsgsize = in.read (recesebuf))! = -1) {out.write (receseBuf, 0, recvmsgsize); } cltsock.close (); // Fermez la prise. Nous avons fini avec ce client! } / * Non atteint * /}}二. 客户端代码 :
importer java.net. *; importer java.io. *; La classe publique TCPECHOCLIENT {public static void main (String [] args) lève ioException {String Server = "127.0.0.1"; // Nom du serveur ou adresse IP int servport = 5500; //// Port serveur byte [] data = "hi, world" .getBytes (); // Créer une prise connectée au serveur sur socket de port spécifié Socket Socket = new socket (serveur, servport); System.out.println ("connecté au serveur ... Envoi de la chaîne Echo"); InputStream dans = socket.getInputStream (); OutputStream out = socket.getOutputStream (); out.write (données); // Envoyez la chaîne codée au serveur // Recevez la même chaîne du serveur int totalBytesrcvd = 0; // Total des octets reçus jusqu'à présent int bytesrcvd; // octets reçus dans la dernière lecture while (totalBytesrcvd <data.length) {if ((bytesrcvd = in.read (data, totalBytesrcvd, data.length - totalbytesrcvd)) == -1) lance une nouvelle socketException ("connexion fermée prématurément"); totalBytesrcvd + = bytesrcvd; } // Le tableau de données est complet System.out.println ("reçu:" + nouvelle chaîne (données)); socket.close (); // ferme la prise et ses flux}}上述代码的 TCP 服务端是单线程 , 一次只能服务一个客户端。
查看更多 Java 的语法 , 大家可以关注 : 《Penser dans Java 中文手册》、《 JDK 1.7 参考手册官方英文版》、《 JDK 1.6 API Java 中文参考手册》、《 JDK 1.5 API Java 中文参考手册》 , 也希望大家多多支持武林网。