TCP
Le protocole TCP est axé sur la connexion et garantit une fiabilité élevée (données sans perte, données sans trouble, données sans erreur et données sans arrivée en double).
TCP établit une connexion par trois poignées de main. La connexion doit être supprimée lorsque la communication est terminée. Étant donné que TCP est connecté à la connexion, il ne peut être utilisé que pour la communication de bout en bout.
Cet article présente principalement le contenu pertinent de Java à l'aide de TCP pour implémenter un chat simple. Il est partagé pour votre référence et votre apprentissage. Je ne dirai pas beaucoup en dessous. Jetons un coup d'œil à l'introduction détaillée ensemble.
Exemple de code
Fonction de chat simple implémentée à l'aide du protocole TCP (très simple)
Pensée: utilisez 2 threads, un thread est utilisé pour recevoir des messages et l'autre thread est utilisé pour envoyer des messages.
Code de démonstration client:
classe publique SendDemo {public static void main (String [] args) lève une exception {socket socket = new socket (inetAddress.getLocalHost (), 8888); SendImpl SendImpl = new SendImpl (socket); // Envoi du thread nouveau thread (SendImpl) .Start (); // reçoit du thread reciveImpl reciveImpl = new ReciveImpl (socket); nouveau thread (reviveImpl) .start (); }}Code de démonstration côté serveur:
public class ServerDemo {public static void main (String [] args) lève exception {serversocket serversocket = new serversocket (8888); Socket socket = serversocket.Accept (); SendImpl SendImpl = new SendImpl (socket); nouveau thread (sendImpl) .Start (); ReciveImpl reciveIMPL = new ReciveImpl (socket); nouveau thread (reviveImpl) .start (); }}Code de démonstration pour l'envoi de thread:
La classe publique SendImpl implémente Runnable {private socket socket; public SendImpl (socket socket) {this.socket = socket; // TODO Stub du constructeur généré automatiquement} @Override public void run () {Scanner Scanner = new Scanner (System.in); while (true) {try {outputStream OutputStream = socket.getOutputStream (); String String = Scanner.NextLine (); outputStream.write (string.getBytes ()); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); }}}}Code de démonstration pour recevoir du thread:
La classe publique ReciveIMPL implémente Runnable {private socket socket; public ReciveImpl (socket socket) {this.socket = socket; // TODO Stub du constructeur généré automatiquement} @Override public void run () {while (true) {try {inputStream inputStream = socket.getInputStream (); octet [] b = nouveau octet [1024]; int len = inputStream.read (b); System.out.println ("Message reçu:" + Nouvelle chaîne (B, 0, Len)); } catch (ioException e) {// TODO Bloc de capture généré automatiquement e.printStackTrace (); }}}}Résumer
Ce qui précède est l'intégralité du contenu de cet article. J'espère que le contenu de cet article a une certaine valeur de référence pour l'étude ou le travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer. Merci pour votre soutien à wulin.com.