Serververarbeitung mit Java (Einführung Teil.1)

Studieren des Servers mit Java

Ziel

  1. Überprüfung der Servergrundlagen
  2. Starten Sie einen Server in Ihrem Computer, der eine Zeichenfolge an den zugreifenden Client zurückgibt
  3. Greifen Sie als Client auf Ihrem Computer auf den Server zu und erhalten Sie die Zeichenfolge
  4. Die Funktion zum Anzeigen der vom Client an den Server gesendeten Zeichenfolge wurde hinzugefügt.
  5. Es wurde die Möglichkeit hinzugefügt, Zeichenfolgen an den Client zu senden
  6. Zeigen Sie die Eingabezeichenfolge auf der Serverseite an
  7. Zeigen Sie die IP-Adresse des Clients auf der Serverseite an
  8. Zeigen Sie die Zeit an, zu der die Zeichenfolge vom Client gesendet wurde
  9. Wenn eine Zeichenfolge von der Clientseite gesendet wird, wird die Nummer des zugreifenden Clients auf dem Server gespeichert und angezeigt (der Zähler wird beim Starten des Servers auf 0 gesetzt).
  10. Stellen Sie sicher, dass die vom Client an den Server gesendete Zeichenfolge mehrere Zeilen enthält
  11. Stellen Sie sicher, dass die vom Server an den Client gesendete Zeichenfolge mehrere Zeilen enthält

Hauptgeschichte

1. Überprüfung der Servergrundlagen

1. Starten Sie einen Server, auf dem auf Ihrem Client eine Zeichenfolge auf der Clientseite angezeigt wird.

Erstellen Sie die folgende Datei Erstellen

basic01Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class basic01Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();     //PrintWriter ist in der Nähe()Grundsätzlich nah mit
                socket.close();     //Steckdose ist in der Nähe()Grundsätzlich nah mit
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Kompilieren und starten.

2. Greifen Sie als Client auf Ihrem Computer auf den Server zu und erhalten Sie die Zeichenfolge

Erstellen Sie die folgende Datei

basic01Client.java


import java.net.Socket;
import java.util.Scanner;
public class basic01Client {
    public static void main(String[] args) {
        try{
            Socket socket = new Socket("127.0.0.1", 3838);          //Verwenden Sie den localhost-Server
            Scanner input = new Scanner(socket.getInputStream());
            System.out.println("Die Nachricht vom Server lautet "" + input.nextLine() + "」");
            input.close();          //Scanner schließen()Grundsätzlich nah mit
            socket.close();         //Steckdose ist in der Nähe()Grundsätzlich nah mit
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Lass uns rennen

3. Die Funktion zum Anzeigen der vom Client an den Server gesendeten Zeichenfolge wurde hinzugefügt.

basic01Server02.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;       //hinzufügen
public class basic01Server02 {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());       //hinzufügen:Speichert die vom Client empfangene Zeichenfolge
				System.out.println("Die vom Client gesendete Nachricht lautet "" + input.nextLine() + ""ist");   //hinzufügen:Geben Sie die gespeicherte Zeichenfolge aus
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}


Ich habe es noch nicht getan

4. Es wurde die Möglichkeit hinzugefügt, Zeichenfolgen an den Client zu senden

basic01Client02.java


import java.net.Socket;
import java.util.Scanner;
import java.io.PrintWriter;     // add
import java.io.*;               // add
public class basic01Client02 {
    public static void main(String[] args) {
        try{
            Socket socket = new Socket("127.0.0.1", 3838);
			PrintWriter output = new PrintWriter(socket.getOutputStream());         // add
			output.println("Zeichenfolge vom Client senden");                         // add
			output.flush();
            Scanner input = new Scanner(socket.getInputStream());
            System.out.println("Die Nachricht vom Server lautet "" + input.nextLine() + "」");
            input.close();
            output.close();         // add
            socket.close();
        } catch (Exception e){
            System.out.println(e);
        }
    }
}


Lass uns rennen

2. Zeigen Sie die Eingabezeichenfolge auf der Serverseite an

Schreiben Sie die Datei auf der Clientseite neu.

basic02Client.java


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class basic02Client {
	public static void main(String args[]){
		try{
			Socket socket = new Socket("127.0.0.1", 3838);
			PrintWriter output = new PrintWriter(socket.getOutputStream());
			BufferedReader consoleIn = new BufferedReader( new InputStreamReader(System.in) );      // add
			String consoleInStr = consoleIn.readLine();         // add
			//output.println("----");       // remove
			output.println(consoleInStr);   // add
			output.flush();
			Scanner input = new Scanner(socket.getInputStream());
			System.out.println(input.nextLine());
			input.close();
			output.close();
			socket.close();
		} catch(Exception e){
			System.out.println(e);
		}
	}
}

Referenz: Geben Sie eine Zeichenfolge über die Java-Tastatur ein

3. Zeigen Sie die IP-Adresse des Clients auf der Serverseite an

basic03Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class basic03Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Die vom Client gesendete Nachricht lautet "" + input.nextLine() + ""ist");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();                        // add:1
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddress + "」");     // add
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();                  // add:2
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddr + "」");        // add
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Referenz: So ermitteln Sie die IP-Adresse des Clients mit Server verbunden? - Stapelüberlauf

4. Zeigen Sie die Zeit an, zu der die Zeichenfolge vom Client gesendet wurde

basic04Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.Date;
public class basic04Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Die vom Client gesendete Nachricht lautet "" + input.nextLine() + ""ist");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddr + "」");
                Date time = new Date();                                     // add
                System.out.println( "Tageszeiten:"" + time + "」");              // add
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

5. Wenn eine Zeichenfolge von der Clientseite gesendet wird, wird die Nummer des zugreifenden Clients auf dem Server gespeichert und angezeigt (der Zähler wird beim Starten des Servers auf 0 gesetzt).

basic05Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.Date;
public class basic05Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            int order = 0;              // add
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Die vom Client gesendete Nachricht lautet "" + input.nextLine() + ""ist");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Tageszeiten:"" + time + "」");
                System.out.println( "Dieser Client ist "" + order + "Es ist der dritte.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

6. Stellen Sie sicher, dass die vom Client an den Server gesendete Zeichenfolge mehrere Zeilen enthält

basic06Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.Date;
public class basic06Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            int order = 0;              // add
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Die vom Client gesendete Nachricht lautet "");   // change
                String getString = input.nextLine();
                while(!getString.equals("QUIT")){                                   // change:"QUIT"Beenden Sie, wenn die Zeichenfolge von
                    System.out.println(getString);                                  // change
                    getString = input.nextLine();                                   // add
                }
				System.out.println(""ist");                                       // change
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Tageszeiten:"" + time + "」");
                System.out.println( "Dieser Client ist "" + order + "Es ist der dritte.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("Hallo! Dies ist ein Server!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

basic06Client.java


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class basic06Client {
	public static void main(String args[]){
		try{
			Socket socket = new Socket("127.0.0.1", 3838);
			PrintWriter output = new PrintWriter(socket.getOutputStream());
			BufferedReader consoleIn = new BufferedReader( new InputStreamReader(System.in) );
			//String consoleInStr = consoleIn.readLine();       // remove
			String consoleInStr = "";                           // add
            while(!consoleInStr.equals("QUIT")){                // change:"QUIT"Zum Beenden eingeben
			    consoleInStr = consoleIn.readLine();
                output.println(consoleInStr);
                output.flush();
            }
			Scanner input = new Scanner(socket.getInputStream());
			System.out.println(input.nextLine());
			input.close();
			output.close();
			socket.close();
		} catch(Exception e){
			System.out.println(e);
		}
	}
}

Referenz: Vergleich von Zeichenfolgen mit Zeichenfolgen

7. Stellen Sie sicher, dass die vom Server an den Client gesendete Zeichenfolge mehrere Zeilen enthält

basic07Server.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
import java.util.Date;
public class basic07Server {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            int order = 0;              // add
            while(true){
                System.out.println("Der Server läuft.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Die vom Client gesendete Nachricht lautet "");
                String getString = input.nextLine();
                while(!getString.equals("QUIT")){
                    System.out.println(getString);
                    getString = input.nextLine();
                }
				System.out.println(""ist");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "Die IP-Adresse und Portnummer des Clients lautet "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Tageszeiten:"" + time + "」");
                System.out.println( "Dieser Client ist "" + order + "Es ist der dritte.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                //Mehrere Nachrichten, die an den Client zurückgegeben werden sollen
                output.println( "START SERVER MESSAGE");                // add
                output.println( "-------------------------------");     // add
                output.println( "Hallo!" );                       // add
                output.println( "Dies ist ein Server." );             // add
                output.println( "Sendet eine mehrzeilige Zeichenfolge.");          // add   
                output.println( "-------------------------------");     // add   
                output.println( "END SERVER MESSAGE");                  // add   
                //output.println("Hallo! Dies ist ein Server!");         // remove
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

basic07Client.java


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class basic07Client {
	public static void main(String args[]){
		try{
			Socket socket = new Socket("127.0.0.1", 3838);
			PrintWriter output = new PrintWriter(socket.getOutputStream());
			BufferedReader consoleIn = new BufferedReader( new InputStreamReader(System.in) );
			String consoleInStr = "";
            while(!consoleInStr.equals("QUIT")){
			    consoleInStr = consoleIn.readLine();
                output.println(consoleInStr);
                output.flush();
            }
			Scanner input = new Scanner(socket.getInputStream());
            String serverMessage = "";                              // add
            while(!serverMessage.equals("END SERVER MESSAGE")){     // add
                serverMessage = input.nextLine();                   // add
                System.out.println(serverMessage);                  // add
            }                                                       // add
			input.close();
			output.close();
			socket.close();
		} catch(Exception e){
			System.out.println(e);
		}
	}
}

Recommended Posts

Serververarbeitung mit Java (Einführung Teil.1)
Grundlegendes zur Java-Parallelverarbeitung (Einführung)
Java mit Ramen lernen [Teil 1]
100% reines Java BDD mit JGiven (Einführung)
[Java] Einführung
Ich habe versucht, eine PDF-Datei mit Java part2 zu verarbeiten
Einführung in Algorithmen mit Java-Suche (Tiefenprioritätssuche)
Einführung in Java ab 0 Teil 1
AWS Lambda (Lambda) Teil 1 mit Java startet jetzt
Installieren Sie Docker mit WSL2 Memo ([Teil 2] Docker-Einführung)
Einführung in Algorithmen mit Java --Search (Breitenprioritätssuche)
Java-Thread-Verarbeitung
Java-String-Verarbeitung
[Java] Einführung in Java
Einführung in Java
[Java] Multithread-Verarbeitung
Weihnachten mit Verarbeitung
[Java] Stream-Verarbeitung
Java iterativer Prozess
Einführung in Algorithmen mit Java --Search (Bit Full Search)
Einfaches Hindernisrennen mit Java-Verarbeitung
Road to Java Engineer Teil 1 Einführung & Umgebungskonstruktion
JSON mit Java und Jackson Teil 2 XSS-Maßnahmen
Installieren Sie Java mit Homebrew
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang-
[Java] Finde die Primzahl mit dem Eratostenes-Sieb (Teil 2)
Einführung von Docker - Teil 1--
SaveAsBinaryFile mit Spark (Teil 2)
Wechseln Sie die Plätze mit Java
Installieren Sie Java mit Ansible
Bequemer Download mit JAVA
Schnelles Lernen von Java "Einführung?" Teil 2 Schreiben wir den Prozess
Schalten Sie Java mit direnv
Ich habe versucht, mit OCR eine PDF-Datei mit Java zu verarbeiten
HTTPS-Verbindung mit Java zum selbstsignierten Zertifikatsserver
Java-Download mit Ansible
Java studieren ~ Teil 8 ~ Besetzung
JAVA-Konstruktoraufrufverarbeitung
Lass uns mit Java kratzen! !!
Einführung in den Java-Befehl
JPS (Java Server-Seiten)
Java zufällig, verschiedene Verarbeitung
Erstellen Sie Java mit Wercker
Ersetzen Sie nur einen Teil des URL-Hosts durch Java
Schnell lernen Java "Einführung?" Teil 3 Von der Programmierung wegreden
Endian-Konvertierung mit JAVA
JSON in Java und Jackson Teil 1 Gibt JSON vom Server zurück
Listenverarbeitung zum Verstehen mit Bildern --java8 stream / javaslang --bonus
Lösen mit Ruby, Perl und Java AtCoder ABC 129 C (Teil 1)
(Java) Einfache BDD mit Spektrum?
Verwenden Sie Lambda-Ebenen mit Java
Erstellen Sie mit Gradle ein Java-Multiprojekt
Erste Schritte mit der Verarbeitung von Doma-Annotationen
Erste Schritte mit Java Collection
Bean-Mapping mit MapStruct Teil 1
45 Techniken zur Optimierung der Java-Leistung (Teil 1)
Java-Konfiguration mit Spring MVC
Grundlegende Authentifizierung mit Java 11 HttpClient