You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.3 KiB
Java
45 lines
1.3 KiB
Java
5 years ago
|
import java.io.BufferedReader;
|
||
|
import java.io.InputStreamReader;
|
||
|
import java.io.PrintStream;
|
||
|
import java.net.ServerSocket;
|
||
|
import java.net.Socket;
|
||
|
|
||
|
public class ServeurTCP {
|
||
|
public static void main(String args[]) throws Exception {
|
||
|
GestionProtocole gp = new GestionProtocole();
|
||
|
// Création d'un socket serveur générique sur le port 40000
|
||
|
ServerSocket ssg = new ServerSocket(40000);
|
||
|
|
||
|
while(true) {
|
||
|
// On attend une connexion puis on l'accepte
|
||
|
Socket sss = ssg.accept();
|
||
|
System.out.println(sss);
|
||
|
|
||
|
// Construction d'un BufferedReader pour lire du texte envoyé à travers la connexion socket
|
||
|
BufferedReader entreeSocket = new BufferedReader(new InputStreamReader(sss.getInputStream()));
|
||
|
// Construction d'un PrintStream pour envoyer du texte à travers la connexion socket
|
||
|
PrintStream sortieSocket = new PrintStream(sss.getOutputStream());
|
||
|
|
||
|
String chaine = "";
|
||
|
|
||
|
while(chaine != null) {
|
||
|
// lecture d'une chaine envoyée à travers la connexion socket
|
||
|
chaine = entreeSocket.readLine();
|
||
|
|
||
|
// si elle est nulle c'est que le client a fermé la connexion
|
||
|
if (chaine != null){
|
||
|
System.out.println("requete : " + chaine);
|
||
|
|
||
|
String reponse = gp.traite(chaine);
|
||
|
|
||
|
sortieSocket.println(reponse); // on envoie la chaine au client
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
// on ferme nous aussi la connexion
|
||
|
sss.close();
|
||
|
}
|
||
|
}
|
||
|
}
|