Exemple33_SocketRetourTélécharger Exemple de l'utilisation d'un socket en Java : plusieurs exemples d'échanges d'information entre un client et un serveur (voir cours sur les sockets) Client1.java import java.awt.*; import java.io.*; import java.net.*; public class Client1 { static public void main(String args[]) throws Exception { System.out.println("Creation du socket"); Socket soc = new Socket("localhost" /*ou InetAddress.getLocalHost()*/, 9100); OutputStream os=soc.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); DataInputStream in = new DataInputStream(System.in); System.out.print("> "); System.out.flush(); String valeur= in.readLine(); dos.writeUTF(valeur); soc.close(); } } Client2.java import java.awt.*; import java.io.*; import java.net.*; public class Client2 { static public void main(String args[]) throws Exception { Socket soc = new Socket(InetAddress.getLocalHost(),9100); OutputStream os=soc.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); while(true) { DataInputStream in = new DataInputStream(System.in); System.out.print("> "); System.out.flush(); String valeur= in.readLine(); dos.writeUTF(valeur); } } } Client3.java import java.awt.*; import java.io.*; import java.net.*; public class Client3 { static public void main(String args[]) throws Exception { Socket soc = new Socket(InetAddress.getLocalHost(),9999); OutputStream os=soc.getOutputStream(); InputStream is = soc.getInputStream(); DataOutputStream dos=new DataOutputStream(os); DataInputStream dis = new DataInputStream(is); while(true) { DataInputStream in = new DataInputStream(System.in); System.out.print("> "); System.out.flush(); String valeur= in.readLine(); dos.writeUTF(valeur); String rep = dis.readUTF(); System.out.println("REPONSE: "+ rep); } } } Client3bis.java import java.awt.*; import java.io.*; import java.net.*; public class Client3bis { static public void main(String args[]) throws Exception { Socket soc = new Socket(InetAddress.getLocalHost(),9999); OutputStream os=soc.getOutputStream(); InputStream is = soc.getInputStream(); DataOutputStream dos=new DataOutputStream(os); DataInputStream dis = new DataInputStream(is); while(true) { DataInputStream in = new DataInputStream(System.in); System.out.print("> "); System.out.flush(); String valeur= in.readLine(); dos.writeUTF(valeur); String rep; boolean lecture=true; while(lecture) { rep = dis.readUTF(); System.out.println("REPONSE: "+ rep); if(dis.available()==0)lecture=false; } } } } Client4.java import java.awt.*; import java.io.*; import java.net.*; public class Client4 { static public void main(String args[]) throws Exception { while(true) { DataInputStream in = new DataInputStream(System.in); System.out.print("> "); System.out.flush(); String valeur= in.readLine(); Socket soc = new Socket(InetAddress.getLocalHost(),9999); OutputStream os=soc.getOutputStream(); DataOutputStream dos=new DataOutputStream(os); dos.writeUTF(valeur); soc.close(); } } } Serveur1.java import java.io.*; import java.awt.*; import java.net.*; public class Serveur1 { public static void main(String args[]) throws Exception { String str; ServerSocket ssoc; ssoc = new ServerSocket(9100); System.out.println("En attente..."); Socket soc = ssoc.accept(); System.out.println("Socket accepte"); InputStream is = soc.getInputStream(); DataInputStream dis = new DataInputStream(is); System.out.println("Lecture du socket"); str = dis.readUTF(); System.out.println("RECU: "+str); soc.close(); } } Serveur2.java import java.io.*; import java.awt.*; import java.net.*; public class Serveur2 { public static void main(String args[]) throws Exception { String str; ServerSocket ssoc; ssoc = new ServerSocket(9100); System.out.println("En attente..."); Socket soc = ssoc.accept(); System.out.println("Socket accepte"); InputStream is = soc.getInputStream(); DataInputStream dis = new DataInputStream(is); while(true) { System.out.println("Lecture du socket"); str = dis.readUTF(); System.out.println("RECU: "+str); try{Thread.sleep(1000);}catch(Exception ex){}; } } } Serveur3.java import java.io.*; import java.awt.*; import java.net.*; public class Serveur3 { public static void main(String args[]) throws Exception { String str; ServerSocket ssoc; ssoc = new ServerSocket(9999); System.out.println("En attente..."); Socket soc = ssoc.accept(); System.out.println("Socket accepte"); InputStream is = soc.getInputStream(); OutputStream os = soc.getOutputStream(); DataInputStream dis = new DataInputStream(is); DataOutputStream dos = new DataOutputStream(os); while(true) { System.out.println("Lecture du socket"); str = dis.readUTF(); System.out.println("RECU: "+str); dos.writeUTF("RECU"); dos.writeUTF("RECU2"); // Pour faie un test } } } Serveur4.java import java.io.*; import java.awt.*; import java.net.*; public class Serveur4 { public static void main(String args[]) throws Exception { String str; ServerSocket ssoc; ssoc = new ServerSocket(9999); while(true) { System.out.println("En attente..."); Socket soc = ssoc.accept(); System.out.println("Socket accepte"); InputStream is = soc.getInputStream(); DataInputStream dis = new DataInputStream(is); System.out.println("Lecture du socket"); str = dis.readUTF(); System.out.println("RECU: "+str); soc.close(); try{Thread.sleep(5000);}catch(Exception ex){} } } } compil.bat mkdir bin del /f /s /q bin\*.class javac -d bin *.java pause runClient1.bat cd bin java Client1 pause runClient2.bat cd bin java Client2 pause runClient3.bat cd bin java Client3 pause runClient3bis.bat cd bin java Client3bis pause runClient4.bat cd bin java Client4 pause runServeur1.bat cd bin java Serveur1 pause runServeur2.bat cd bin java Serveur2 pause runServeur3.bat cd bin java Serveur3 pause runServeur4.bat cd bin java Serveur4 pause