Client.java
import java.net.*;
import java.io.*;
public class Serveur {
public static void main(String[] args) throws IOException {
ServerSocket sSocket = null;
try {
sSocket = new ServerSocket(4444);
} catch (IOException e) {
System.err.println("Port inaccessible: 4444.");
}
Socket clientSocket = null;
try {
clientSocket = sSocket.accept();
} catch (IOException e) {
System.err.println("Accept a échoué.");
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
String inLigne, outLigne;
UnProtocol p = new UnProtocol();
outLigne = p.traiterRequete(null);
out.println(outLigne);
while ((inLigne = in.readLine()) != null) {
outLigne = p.traiterRequete(inLigne);
out.println(outLigne);
if (outLigne.equals("Au revoir"))
break;
}
out.close();
in.close();
clientSocket.close();
sSocket.close();
}
}
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket cSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
cSocket = new Socket("127.0.0.1", 4444);
out = new PrintWriter(cSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(cSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Host inconnu: 127.0.0.1.");
} catch (IOException e) {
System.err.println("Connexion impossible: localhost.");
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String reponse;
String requete;
while ((reponse = in.readLine()) != null) {
System.out.println("Serveur: " + reponse);
if (reponse.equals("AU REVOIR."))
break;
requete = stdIn.readLine();
if (requete != null) {
System.out.println("Client: " + requete);
out.println(requete);
}
}
out.close();
in.close();
stdIn.close();
cSocket.close();
}
}
import java.net.*;
import java.io.*;
import java.util.*;
public class UnProtocol {
private static final int ATTENTE = 0;
private static final int BIENVENUE = 1;
private int etat = ATTENTE;
public String traiterRequete(String Entree) {
String sortie = null;
switch (etat){
case ATTENTE :
sortie = "SERVEUR PRET";
etat = BIENVENUE;
break;
case BIENVENUE:
if (Entree.equalsIgnoreCase("DATE")) {Calendar cl=Calendar.getInstance();
sortie = (cl.getTime()).toString();
} else if (Entree.equalsIgnoreCase("FIN")){
sortie="AU REVOIR.";
etat=ATTENTE;
}
else {
sortie = "Commandes possibles DATE ou FIN";
}
}
return sortie;
}
}
import java.net.*;
import java.io.*;
public class Serveur {
public static void main(String[] args) {
ServerSocket sSocket = null;
try {
ServerSocket = new sSocket(4444);
} catch (IOException e) {
System.err.println("Port inaccessible: 4444.");
}
Socket clientSocket = null;
try {
clientSocket = sSocket.accept();
} catch (IOException e) {
System.err.println("Accept a échoué.");
}
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
BufferedReader in = new BufferedReader(
new InputStreamReader(
clientSocket.getInputStream()));
String inLigne, outLigne;
UnProtocol p = new UnProtocol();
outLigne = p.traiterRequete(null);
out.println(outLigne);
while ((inLigne = in.readLine()) != null) {
outLigne = p.traiterRequete(inLigne);
out.println(outLigne);
if (outLigne.equals("Au revoir"))
break;
}
out.close();
in.close();
clientSocket.close();
sSocket.close();
}
}