package chat_rsx112;
import java.io.*;
import java.net.*;
/* Classe serveur de socket */
public class Provider{
public static ServerSocket providerSocket;
public static Socket connection = null;
public static ObjectOutputStream out;
public static ObjectInputStream in;
public static String message;
Provider(){}
public static void run()
{
try{
//1. Création du serveur de socket
providerSocket = new ServerSocket(2000, 10);
//2. Attente de la connection
System.out.println("Connection en cours, veuillez patienter ...");
connection = providerSocket.accept();
System.out.println("Connection reçu de " + connection.getInetAddress().getHostName());
//3. Flux entrant et sortant
out = new ObjectOutputStream(connection.getOutputStream());
out.flush();
in = new ObjectInputStream(connection.getInputStream());
sendMessage("Connecté avec succès");
//4. Les deux communiquent par l'intermédiaire du flux d'entrée et de sorties
do{
try{
message = (String)in.readObject();
System.out.println("client>" + message);
if (message.equals("ok"))
sendMessage("ok");
}
catch(ClassNotFoundException classnot){
System.err.println("Format de données incompatible !");
}
}while(!message.equals("ok"));
}
catch(IOException ioException){
ioException.printStackTrace();
}
finally{
//4: Arrêt de la connection
try{
//in.close();
out.close();
providerSocket.close();
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
}
public static void sendMessage(String msg)
{
try{
out.writeObject(msg);
out.flush();
System.out.println("server>" + msg);
}
catch(IOException ioException){
ioException.printStackTrace();
}
}
public static void main(String args[])
{
Provider server = new Provider();
while(true){
Provider.run();
}
}
}
Partager