Traitement serveur avec Java (Introduction partie 1)

Etudier le serveur avec Java

Cible

  1. Examen des principes de base du serveur
  2. Démarrez un serveur sur votre ordinateur qui renvoie une chaîne au client accédant
  3. Accédez au serveur en tant que client de votre ordinateur et recevez la chaîne de caractères
  4. Ajout de la fonction pour afficher la chaîne de caractères envoyée du client au serveur.
  5. Ajout de la possibilité d'envoyer des chaînes au client
  6. Affichez la chaîne de caractères d'entrée côté serveur
  7. Affichez l'adresse IP du client côté serveur
  8. Afficher l'heure à laquelle la chaîne de caractères a été envoyée par le client
  9. Lorsqu'une chaîne de caractères est envoyée du côté client, le numéro du client qui accède est stocké dans le serveur et affiché (le compteur est mis à 0 au démarrage du serveur). 6.Faites en plusieurs lignes la chaîne envoyée du client au serveur 7.Faites en plusieurs lignes la chaîne envoyée du serveur au client

Histoire principale

1. Examen des principes de base du serveur

1. Démarrez un serveur qui affiche une chaîne de caractères côté client sur votre ordinateur personnel.

Créez le fichier suivant Créer

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                output.close();     //PrintWriter est fermé()Fondamentalement proche avec
                socket.close();     //Le socket est fermé()Fondamentalement proche avec
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Compilez et démarrez.

2. Accédez au serveur en tant que client de votre ordinateur et recevez la chaîne de caractères

Créez le fichier suivant

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);          //Utiliser le serveur localhost
            Scanner input = new Scanner(socket.getInputStream());
            System.out.println("Le message du serveur est "" + input.nextLine() + "」");
            input.close();          //Scanner fermé()Fondamentalement proche avec
            socket.close();         //Le socket est fermé()Fondamentalement proche avec
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Courons

3. Ajout de la fonction pour afficher la chaîne de caractères envoyée du client au serveur.

basic01Server02.java


import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;       //ajouter à
public class basic01Server02 {
    public static void main(String[] args) {
        try{
            ServerSocket server = new ServerSocket(3838, 5);
            while(true){
                System.out.println("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());       //ajouter à:Stocke la chaîne reçue du client
				System.out.println("Le message envoyé par le client est "" + input.nextLine() + ""est");   //ajouter à:Sortie de la chaîne de caractères stockée
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}


Je ne l'ai pas encore fait

4. Ajout de la possibilité d'envoyer des chaînes au client

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("Envoyer la chaîne du client");                         // add
			output.flush();
            Scanner input = new Scanner(socket.getInputStream());
            System.out.println("Le message du serveur est "" + input.nextLine() + "」");
            input.close();
            output.close();         // add
            socket.close();
        } catch (Exception e){
            System.out.println(e);
        }
    }
}


Courons

2. Affichez la chaîne de caractères d'entrée côté serveur

Réécrivez le fichier côté client.

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);
		}
	}
}

Référence: Entrez une chaîne à partir du clavier Java

3. Affichez l'adresse IP du client côté serveur

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Le message envoyé par le client est "" + input.nextLine() + ""est");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();                        // add:1
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddress + "」");     // add
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();                  // add:2
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddr + "」");        // add
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

Référence: Comment trouver l'adresse IP du client connecté au serveur? - Dépassement de pile

4. Afficher l'heure à laquelle la chaîne de caractères a été envoyée par le client

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Le message envoyé par le client est "" + input.nextLine() + ""est");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddr + "」");
                Date time = new Date();                                     // add
                System.out.println( "Heures du jour:"" + time + "」");              // add
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

5. Lorsqu'une chaîne de caractères est envoyée du côté client, le numéro du client qui accède est stocké dans le serveur et affiché (le compteur est mis à 0 au démarrage du serveur).

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Le message envoyé par le client est "" + input.nextLine() + ""est");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Heures du jour:"" + time + "」");
                System.out.println( "Ce client est "" + order + "C'est le troisième.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                output.close();
                socket.close();
            }
        } catch (Exception e){
            System.out.println(e);
        }
    }
}

6.Faites en plusieurs lignes la chaîne envoyée du client au serveur

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Le message envoyé par le client est "");   // change
                String getString = input.nextLine();
                while(!getString.equals("QUIT")){                                   // change:"QUIT"Fin lorsque la chaîne de caractères de
                    System.out.println(getString);                                  // change
                    getString = input.nextLine();                                   // add
                }
				System.out.println(""est");                                       // change
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Heures du jour:"" + time + "」");
                System.out.println( "Ce client est "" + order + "C'est le troisième.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                output.println("salut! Ceci est un serveur!");
                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"Entrez pour terminer
			    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);
		}
	}
}

Référence: Comparaison de chaînes de caractères avec des chaînes de caractères

7.Faites en plusieurs lignes la chaîne envoyée du serveur au client

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("Le serveur est en cours d'exécution.");
                Socket socket = server.accept();
                order += 1;             // add
				Scanner input = new Scanner(socket.getInputStream());
				System.out.println("Le message envoyé par le client est "");
                String getString = input.nextLine();
                while(!getString.equals("QUIT")){
                    System.out.println(getString);
                    getString = input.nextLine();
                }
				System.out.println(""est");
                String clientIpAddress = socket.getRemoteSocketAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddress + "」");
                String clientIpAddr = socket.getInetAddress().getHostAddress().toString();
                System.out.println( "L'adresse IP et le numéro de port du client sont "" + clientIpAddr + "」");
                Date time = new Date();
                System.out.println( "Heures du jour:"" + time + "」");
                System.out.println( "Ce client est "" + order + "C'est le troisième.");
                PrintWriter output = new PrintWriter(socket.getOutputStream());
                //Plusieurs messages à retourner au client
                output.println( "START SERVER MESSAGE");                // add
                output.println( "-------------------------------");     // add
                output.println( "salut!" );                       // add
                output.println( "Ceci est un serveur." );             // add
                output.println( "Envoie une chaîne multiligne.");          // add   
                output.println( "-------------------------------");     // add   
                output.println( "END SERVER MESSAGE");                  // add   
                //output.println("salut! Ceci est un serveur!");         // 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

Traitement serveur avec Java (Introduction partie 1)
Comprendre le traitement parallèle Java (Introduction)
Java pour apprendre avec les ramen [Partie 1]
BDD Java 100% pur avec JGiven (Introduction)
[Java] Introduction
J'ai essayé OCR de traiter un fichier PDF avec Java part2
Introduction aux algorithmes avec java-Search (recherche prioritaire en profondeur)
Introduction à Java à partir de 0 Partie 1
AWS Lambda (Lambda) Partie 1 avec Java pour démarrer maintenant
Installer Docker avec WSL2 Memo ([Partie 2] Introduction à Docker)
Introduction aux algorithmes avec java --Search (recherche de priorité de largeur)
Traitement des threads Java
Traitement des chaînes Java
[Java] Introduction à Java
Introduction à Java
[Java] Traitement multi-thread
Noël avec traitement
[Java] Traitement de flux
traitement itératif java
Introduction aux algorithmes avec java --Search (bit full search)
Course d'obstacles facile avec traitement pour Java
Ingénieur en route vers Java Partie 1 Introduction et construction de l'environnement
JSON avec Java et Jackson Part 2 XSS mesures
Installez java avec Homebrew
Traitement des listes à comprendre avec des images - java8 stream / javaslang-
[Java] Trouvez le nombre premier avec le tamis Eratostenes (Partie 2)
Introduction de Docker - Partie 1--
SaveAsBinaryFile avec Spark (partie 2)
Changer de siège avec Java
Installez Java avec Ansible
Téléchargement confortable avec JAVA
Apprentissage rapide Java "Introduction?" Partie 2 Écrivons le processus
Changer java avec direnv
J'ai essayé OCR de traiter un fichier PDF avec Java
Connexion HTTPS avec Java au serveur de certificats auto-signé
Téléchargement Java avec Ansible
Étudier Java ~ Partie 8 ~ Cast
Traitement des appels du constructeur JAVA
Raclons avec Java! !!
Introduction à la commande java
JPS (pages Java Server)
Java aléatoire, divers traitements
Construire Java avec Wercker
Remplacez seulement une partie de l'hôte URL par java
Apprentissage rapide de Java "Introduction?" Partie 3 Parler de programmation
Conversion Endian avec JAVA
JSON en Java et Jackson Partie 1 Renvoyer JSON à partir du serveur
Traitement des listes à comprendre avec des images --java8 stream / javaslang --bonus
Résolution avec Ruby, Perl et Java AtCoder ABC 129 C (Partie 1)
(Java) BDD facile avec Spectrum?
Utiliser des couches Lambda avec Java
Créer un multi-projet Java avec Gradle
Premiers pas avec le traitement Doma-Annotation
Premiers pas avec Java Collection
Cartographie de Bean avec MapStruct Partie 1
45 Techniques d'optimisation des performances Java (partie 1)
Configuration Java avec Spring MVC
Authentification de base avec Java 11 HttpClient