Erstellen Sie einen Netzwerkserver in der Java -Sprache, um die Kommunikation zwischen dem Client und dem Server zu realisieren, und stellen Sie fest, dass der Client unabhängige Threads hat und sich nicht gegenseitig beeinträchtigt.
Grundlegende Schritte zur Anwendung von Multi-Threading, um die Kommunikation zwischen Server und Multi-Threading zu realisieren
Server-Seite Server.java
Pakettest.Concurrent.Socket; import Java.io.*; importieren java.net.inetaddress; importieren java.net.serversocket; importieren java.net.socket; /*** Erstellt von Dong am 15-6-22. * Socket -Kommunikation basierend auf TCP -Protokoll, implementieren Sie die Benutzeranmeldung* Server -Seite*/öffentlicher Klasse Server {public static void main (String [] args) {try {// 1. Erstellen Sie einen serverseitigen Socket, dh ServerSocket, geben Sie den gebundenen Port an und hören Sie diesen Port ServerSocket ServerSocket = New ServerSocket (8888) an. Socket Socket = Null; // Die Anzahl der Clients int count = 0 aufzeichnen; System.out.println ("*** Der Server startet kurz vor dem Link des Clients ***"); // Loop Hören Sie auf den Link des Clients zu, während (true) {// die Methode Accept () zum Anhören aufrufen und auf den Link des Clients socket = serverSocket.accept () warten; // Erstellen eines neuen Threadthread -Serverthreads = new Serverthread (Socket); // Thread Serverthread.start () starten; zählen ++; // Durchsuchen Sie die Anzahl der Clients system.out.println ("Anzahl der Clients:" + count); Inetaddress address = socket.getInetaddress (); System.out.println ("Die IP des aktuellen Clients:" + adress.GethostadDress ()); }} catch (ioException e) {e.printstacktrace (); }}} Server-Seite Thread Processing Class Serverthread.java
Pakettest.Concurrent.Socket; import Java.io.*; importieren java.net.socket; /*** Erstellt von Dong am 15-6-22. * Server-Seiten-Thread-Verarbeitungsklasse*/öffentliche Klasse Serverthread erweitert Thread {// Socket Socket Socket = NULL; public serverthread (Socket Socket) {this.socket = Socket; } // Die vom Thread ausgeführte Operation reagiert auf die Anfrage des Kunden public void run () {InputStream is = null; InputStreamReader isr = null; BufferedReader BR = NULL; OutputStream os = null; Printwriter PW = NULL; Versuchen Sie es mit {// einen Eingabestream und lesen Sie die Informationen des Clients. ISR = neuer InputStreamReader (IS); // Byte -Streams in Zeichenströme konvertieren BR = New BufferedReader (ISR); // Puffered String Info = NULL hinzufügen; // Schleifen Sie die Daten zum Lesen von Daten ((info = br.readline ())! = Null) {System.out.println ("Ich bin der Server, und der Client sagte:" +info); } socket.shutdowninput (); // Schließen Sie den Eingabestream // den Ausgabestream als Antwort auf das Anforderungs -OS = Socket.GetOutputStream () des Clients ab. PW = neuer Pressewriter (OS); // als Print Stream pw.write verpackt ("Willkommen"); pw.flush (); // zwischengespeicherte Ausgabe} catch (ioException e) {e.printstacktrace (); } endlich {try {// Schließen Sie die Ressource if (pw! = null) pw.close (); if (os! = null) os.close (); if (ist! = null) ist.CLOSE (); if (br! = null) br.close (); if (socket! = null) socket.close (); } catch (ioException e) {e.printstacktrace (); }}}} Client.java
Pakettest.Concurrent.Socket; import Java.io.*; importieren java.net.socket; /*** Erstellt von Dong am 15-6-22. * Client*/public class Client {public static void main (String [] args) {try {// 1. Client -Socket erstellen, Server -Portnummer und Adress -Socket -Socket angeben = neuer Socket ("Localhost", 8888); // 2. Ausgabestream abrufen und Informationen an den Server -Ausgangsstream OS = Socket.GetOutputStream () senden. // Byte Ausgangsstream Presswriter PW = New Printwriter (OS); // den Ausgabestream als Druckstream PW.Write einwickeln ("Benutzername: Tom; Passwort: 456"); pw.flush (); Socket.ShutDownoutput (); // Schließen Sie den Ausgangsstrom -Eingabestream is = socket.getInputStream (); InputStreamReader ISR = neuer InputStreamReader (IS); BufferedReader BR = neuer BufferedReader (ISR); String info = null; // read while ((info = br.readline ())! = Null) {System.out.println ("Ich bin der Client: Der Server sagt:" + info); } br.close (); IS.CLOSE (); isr.close (); pw.close (); os.close (); socket.close (); } catch (ioException e) {e.printstacktrace (); }}}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.