<<L'observation scientifique est toujours une observation polémique. >>
Gaston Bachelard
Ceci est un tutoriel permettant de concevoir simplement une communication TCP en Java.
Le code est bien commenté et bien indenté ; j'espère qu'il sera compris avec facilité.
Pour en savoir plus sur le protocole TCP, vous pouvez vous référer à l'article TCP/IP.
Le programme serveur se présente ainsi:
import java.io.*;
public class ServeurTCP {
public static void main(String[] args)throws Exception {
//S'attacher à un port
ServerSocket ss = new ServerSocket(7500);
//Attendre les connexion des clients
System.out.print("Attente connexion...");
/*
* NB : La methode accept() bloque le programme jusqu'à ce
* qu'une connexion soit établie
*/
Socket s = ss.accept();//Bloquant
//Création du flux binaire de lecture
InputStream is = s.getInputStream();
//Création du flux binaire d'écriture
OutputStream os = s.getOutputStream();
/*
* NB: La nature des filtres dépend de la nature de
* l'information initiale
*/
//Filtre de lecture de texte
BufferedReader tmp = new BufferedReader(new InputStreamReader(is));
//Filtre d'ecriture de texte
PrintWriter pw = new PrintWriter(os,true);
//Lecture de la chaine envoyée par le client
String recep = tmp.readLine();
//Je me demande bien ce que fait cette ligne ici
recep = new StringBuffer(recep).reverse().toString();
//Renvoi au client
pw.println(recep);
}
}
Et de son côté, le client TCP (beaucoup plus simple) s'écrit juste en ces quelques lignes:
NB: Je crois qu'il n'y a rien à commenter sur le client !
import java.net.*;
import java.io.*;
public class ClientTCP {
public static void main(String[] args)throws Exception {
//Sattacher à un port (ici peut être?)
Socket s = new Socket("localhost", 7500);
InputStream is = s.getInputStream();
OutputStream os=s.getOutputStream();
BufferedReader tmp = new BufferedReader(new InputStreamReader(is));
PrintWriter pw = new PrintWriter(os,true);
pw.println("Hello World !");
System.out.print("Reçu du serveur: "+tmp.readLine());
}
}
Voilà, c'est rien que ça !
Vous avez réussi à implémenter une communication fiable entre un client et un serveur.
C'est fou ce qu'on nous fatigue pour des choses aussi banales ! ;-)
N'hésitez pas à poster vos commentaires et éventuellement de contribuer à ce blog.
Sinon "enjoyez !".
On ne finit jamais d'apprendre dans la vie ; à chaque jour son expérience, son vécu, son savoir.
Merci de participer à l'amélioration de ce blog. Le savoir n'est serviable que s'il est réellement partagé.