Dieses Beispiel zeigt nur einfache Funktionen, und der Code ist nicht streng, erklärt jedoch nur, wie der Client einfache Code implementiert kann, die mit dem Server eine Verbindung herstellt.
Der Code testet die Kompilierung und die laufende Umgebung unter dem integrierten Eclipse -Tool, wie in der folgenden Abbildung gezeigt:
Client echoclient.java Code:
Paket com.zhengzz.echo; import java.io.bufufferedReader; import java.io.ioxception; import Java.io.inputStreamReader; import Java.io.printwriter import Java.net.Net.Socket; Import Java.net.unnownhostexception; Class; Class; Class; Class; Class; Echoc {private Socket Socket; IOException E) {E. printstacktrace (); True); println (Br.Readline ()); Main (String [] args) {new echoc (). client ();Server EchoServer.java Code:
Paket com.zhengzz.echo; import java.io.bufufferedReader; import Java.io.ioException; import Java.io.inputStreamReader; Import Java.io.printwriter importieren Java.net.Net.Serversocket; importieren java.net.Net.socket; Klasse; Class; Class; Class; Class; Echos {private serversocket; socket = serversocket.accept (); ))) Pw = neuer Prinker (Socket.GetOutputStream (), True); ("--->" + linestern); gs) {new echos (). server ();Meine direkten Debugging -Ergebnisse im Eclipse -Tool sind wie folgt:
Schauen wir uns ein Beispiel für die Java Socket-Kommunikation auf Helloword-Ebene an. Kommunikationsprozess:
Starten Sie zunächst die Serverseite und geben Sie eine tote Schleife ein, um weiter zu hören, ob eine Verbindungsanforderung für einen bestimmten Port vorhanden ist. Führen Sie dann die Client -Seite aus, der Client stellt eine Verbindungsanforderung aus, und der Server hört auf die Anfrage und sendet eine Akzeptanznachricht an den Client. zu anderen Anfragen in einer toten Schleife. Nachdem der Client in die Zeichenfolge eingetreten ist, drücken Sie die Eingabetaste, um Daten an den Server zu senden. Der Server liest die Daten und reagiert auf die Clientdaten. Nachdem die Anfrage dieses Mal bearbeitet wurde, verschwindet der gestartete Thread. Wenn der Client andere Rückgabedaten als "OK" empfängt, wird die Verbindungsanforderung erneut gesendet und die Daten gesendet. Der Server startet erneut einen Thread, damit die Verbindung reagiert. . . Der Client beendet, bis die vom Client empfangenen Rückgabedaten "OK" sind.
Serverquellcode:
Paket Com.Defonds. Socket; Server = neuer Server (); Der Client wurde Connect Socket Client = ServerSocket.Accept () angeschlossen; )); Data DataNputStream Input = New DataNputStream (Socket.GetInputStream ()); Data System.out "); // Senden Sie eine von der Tastatur String S = New BufferedReader (neue InputStreamReader (System.in)). Readline (); out.writeuTf (s); out.close (); Eingabe.CLOSE (); } catch (exc -Episode E) {System .out.println ("Server -Ausnahme:" + e.getMessage ()); Ausnahme e) {Socket = null;Client -Quellcode:
Paket Com.Defonds.Socket.Begin; Socket; Class Client {öffentliche statische endgültige String ip_addr = "localhost"; // Serveradresse öffentliche statische endgültige int port = 12345; // Server -Portnummer Public Static Void Main (ST RING [] Argumente) {System.out.println ("Client Starts ..."); {// einen Stream-Socket erstellen und an die angegebene Portnummer in der angegebenen Host-Socket = neuer Socket (IP_ADDR, Port) anschließen; // Daten an den Server -DataOutputStream out = new DataOutputStream (Socket.GetOutputStream ()); Readline (); ".Equals (ret)) {System.out.println (" Client wird die Verbindung schließen "); Thread.sleep (500); break;} out.close (); input.close ();} catch (Ausnahme E. ) {System.out.println ("Client -Ausnahme:" + e.getMessage ()); ;HINWEIS: Wenn der Socket -Ausgangsstrom -Stream die Datenmethode schreibt, muss der Eingabestream readUTF zum Lesen verwandter Daten verwenden. Andernfalls wird eine EOFException -Ausnahme ausgeworfen.