sindibadthesailor

Untitled

Mar 17th, 2023
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.87 KB | Source Code | 0 0
  1. // Exemple inspiré du livre _Java in a Nutshell_
  2. import java.io.*;
  3. import java.net.*;
  4. public class MonServeurSimple {
  5. public final static int DEFAULT_PORT = 6789;
  6. protected int port;
  7. protected ServerSocket listen_socket;
  8. protected BufferedReader in;
  9. protected PrintStream out;
  10. // traitement des erreurs
  11. public static void fail(Exception e, String msg){
  12.     System.err.println(msg + ": " + e);
  13.     System.exit(1);
  14.     }
  15. // Cree un serveur TCP : c'est un objet de la
  16. // classe ServerSocket
  17. // Puis lance l'ecoute du serveur.
  18. public MonServeurSimple(int port) {
  19.     if (port == 0) port = DEFAULT_PORT;
  20.     this.port = port;
  21.     Socket client = null;
  22.     try { listen_socket = new ServerSocket(port);
  23.         System.out.println("Serveur en écoute sur le port:"+port);
  24.     while(true) {
  25.         client = listen_socket.accept();
  26.         in = new BufferedReader(new
  27.         InputStreamReader(client.getInputStream()));
  28.         out = new
  29.         PrintStream(client.getOutputStream());
  30.         traitement();
  31. }
  32. } catch (IOException e) {
  33.     fail(e, "Pb lors de l'écoute"); }
  34.     finally { try {client.close();} catch (IOException e2) { } }
  35. }
  36. // Le lancement du programme :
  37. // - initialise le port d'écoute
  38. // - lance la construction du serveurTCP
  39. public static void main(String[] args) {
  40. int port = 0;
  41. if (args.length == 1) {
  42. try { port = Integer.parseInt(args[0]); }
  43. catch (NumberFormatException e) { port =
  44. 0; }
  45. }
  46. new MonServeurSimple(port);
  47. }
  48.  
  49.  
  50.  
  51. public void traitement() {
  52. String line;
  53. StringBuffer revline;
  54. int len;
  55. try {
  56.     for(;;) {
  57.         // lit la ligne
  58.         line = in.readLine();
  59.         // Si cette ligne est vide,
  60.         // le serveur se termine
  61.         if (line == null) break;
  62.             // sinon l'ecrit a l'envers
  63.             len = line.length();
  64.             revline = new StringBuffer(len);
  65.         for(int i = len-1; i >= 0; i--)
  66.         revline.insert(len-1-i, line.charAt(i));
  67.         // et l'envoie dans la socket
  68.         out.println(revline);
  69.     }
  70.         } catch (IOException e) { ; }
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment