Créez un serveur réseau dans le langage Java pour réaliser la communication entre le client et le serveur, et réalisez que le client a des threads indépendants et n'interfère pas entre eux.
Étapes de base pour appliquer le multi-threading pour réaliser la communication entre le serveur et le multi-threading
Serveur server.java
package test.concurrent.socket; importer java.io. *; Importer java.net.inetAddress; import java.net.serversocket; import java.net.socket; / ** * Créé par Dong le 15-6-22. * Communication de socket basée sur le protocole TCP, implémentez la connexion de l'utilisateur * côté serveur * / classe publique Server {public static void main (String [] args) {try {// 1. Créer une prise côté serveur, c'est-à-dire Serversocket, spécifiez le port lié et écoutez ce port Serversocket SERVERSOCKET = new Serversocket (8888); Douille à douille = null; // Enregistrez le nombre de clients int count = 0; System.out.println ("*** Le serveur est sur le point de démarrer, en attendant le lien du client ***"); // LOOP Écoutez pour attendre le lien du client tandis que (true) {// appelant la méthode Accept () pour commencer à écouter, en attendant le lien du client = serveSocket.Accept (); // Création d'un nouveau thread ServerThread ServerThread = new ServerThread (socket); // Démarrage du thread serverthread.start (); Count ++; // Recherchez le nombre de clients System.out.println ("Nombre de clients:" + Count); INETADdress Adresse = socket.getinetAddress (); System.out.println ("L'IP du client actuel:" + adresse.GethostAddress ()); }} catch (ioException e) {e.printStackTrace (); }}} Traitement de threads côté serveur Classe ServerThread.java
package test.concurrent.socket; importer java.io. *; import java.net.socket; / ** * Créé par Dong le 15-6-22. * Classe de traitement de thread côté serveur * / classe publique ServerThread étend Thread {// socket socket socket = null; public ServerThread (socket socket) {this.socket = socket; } // L'opération exécutée par le thread répond à la demande du client public void run () {inputStream est = null; InputStreamReader ISR = null; BufferedReader br = null; OutputStream os = null; Printwriter pw = null; essayez {// obtenir un flux d'entrée et lire les informations du client est = socket.getInputStream (); ISR = new inputStreamReader (IS); // Convertir les flux d'octets en flux de caractères Br = new BufferedReader (ISR); // Ajouter une chaîne tamponnée info = null; // LOOP DONNÉES DE LECTURE WHAD ((info = br.readline ())! = Null) {System.out.println ("Je suis le serveur, et le client a dit:" + info); } socket.shutdownut (); // Fermez le flux d'entrée // Obtenez le flux de sortie en réponse à la demande du client OS = socket.getOutputStream (); pw = new PrintWriter (OS); // emballé sous forme d'impression pw.write ("bienvenue"); pw.flush (); // sortie en cache} catch (ioException e) {e.printStackTrace (); } Enfin {try {// Fermez la ressource if (pw! = null) pw.close (); if (os! = null) os.close (); if (est! = null) is.close (); if (br! = null) br.close (); if (socket! = null) socket.close (); } catch (ioException e) {e.printStackTrace (); }}}} Client.java
package test.concurrent.socket; importer java.io. *; import java.net.socket; / ** * Créé par Dong le 15-6-22. * Client * / public class Client {public static void main (String [] args) {try {// 1. Créer un socket client, spécifier le numéro de port du serveur et le socket d'adresse Socket = new socket ("localhost", 8888); // 2. Obtenez un flux de sortie et envoyez des informations au serveur OutputStream OS = socket.getOutputStream (); // Stream de sortie d'octet Printwriter PW = new PrintWriter (OS); // Enveloppez le flux de sortie en tant que flux d'impression PW.Write ("Nom d'utilisateur: Tom; mot de passe: 456"); pw.flush (); socket.shutdownoutput (); // Fermer le flux de sortie inputStream est = socket.getInputStream (); InputStreamReader ISR = new inputStreamReader (IS); BufferedReader br = new BufferedReader (ISR); Chaîne info = null; // Lire while ((info = br.readline ())! = Null) {System.out.println ("Je suis le client: le serveur dit:" + info); } br.close (); is.close (); isr.close (); pw.close (); os.close (); socket.close (); } catch (ioException e) {e.printStackTrace (); }}}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.