Advertisement
Guest User

Untitled

a guest
May 26th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.*;
  3.  
  4. import com.sun.java_cup.internal.runtime.Scanner;
  5.  
  6. class TCPServer {
  7.     public static boolean exit = false;
  8.     public static ServerSocket srvSocket = null;
  9.     public static Socket cliSocket = null;
  10.  
  11.     public static void main(String args[]) throws Exception {
  12.         Runnable serverThread = new Runnable() {
  13.             public void run() {
  14.                 try {
  15.                     DataOutputStream out = null;
  16.                     BufferedReader in = null;
  17.                     InetAddress addr = null;
  18.                     String data = null;
  19.  
  20.                     // creation de la socket serveur TCP
  21.                     srvSocket = new ServerSocket(9876);
  22.  
  23.                     // Boucle principale
  24.                     while (!exit) {
  25.                         // Attend une nouvelle connexion
  26.                         cliSocket = srvSocket.accept();
  27.  
  28.                         try {
  29.                             // Creation d'un buffer de reception sur la socket
  30.                             // cliente
  31.                             in = new BufferedReader(new InputStreamReader(cliSocket.getInputStream()));
  32.  
  33.                             // Lecture des donnees
  34.                             data = in.readLine();
  35.                             exit = data.contains("XXX");
  36.                             addr = cliSocket.getInetAddress();
  37.  
  38.                             // Affichage
  39.                             System.out.println(
  40.                                     "RECV FROM " + addr.toString() + ":" + cliSocket.getPort() + " -> " + data);
  41.                             data = "RESP : " + data;
  42.  
  43.                             // Renvoi vers la socket emettrice
  44.                             out = new DataOutputStream(cliSocket.getOutputStream());
  45.                             out.writeBytes(data);
  46.                             out.writeBytes("\n");
  47.                         } finally {
  48.                             cliSocket.close();
  49.                         }
  50.                     }
  51.                 } catch (Exception excp) {
  52.                     System.out.println(excp.toString());
  53.                 } finally {
  54.                     // Fermeture de la socket
  55.                     if (srvSocket != null)
  56.                         try {
  57.                             srvSocket.close();
  58.                         } catch (IOException e) {
  59.                             // TODO Auto-generated catch block
  60.                             e.printStackTrace();
  61.                         }
  62.                 }
  63.             }
  64.         };
  65.         Thread thread = new Thread(serverThread);
  66.         thread.start();
  67.         try {
  68.             // Sortie du logiciel
  69.             System.out.println("XXX pour quitter l'application");
  70.             String sortie = "";
  71.             //Scanner sc = new Scanner(System.in);
  72.             BufferedReader user = new BufferedReader(new InputStreamReader(System.in));
  73.             do {
  74.                 sortie = user.readLine();
  75.             } while (!sortie.equals("XXX"));
  76.             thread.join();
  77.             exit = true;
  78.             if (cliSocket == null)
  79.                 cliSocket.close(); // on ferme le socket si aucune connexion n'est ouverte
  80.             srvSocket.close();
  81.             System.out.println("Vous avez quitté l'application");
  82.         } catch (Exception excp) {
  83.         }
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement