Advertisement
Matiuso

[Socket] Connexion Handler

Jan 15th, 2017
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.25 KB | None | 0 0
  1. package chat;
  2.  
  3. import java.io.*;
  4. import java.net.ServerSocket;
  5. import java.net.Socket;
  6.  
  7. public class Chat {
  8.     BufferedReader in;
  9.     PrintWriter out;
  10.     Socket socket;
  11.     /*
  12.      * Constructeur.  Permet d'initialiser le chat en établissant la
  13.      * connection avec un interlocuteur situé sur la même machine.
  14.      * @param isServer : si true, l'instance est un serveur et se met en attente d'une connexion
  15.      * @port le numéro de port sur lequel établir la connexion
  16.      * @exception IOException s'il y a un problème pendant l'établissement de la connexion
  17.      */
  18.     public Chat(boolean isServer, int port) throws IOException {
  19.         connect(isServer, port, "localhost");
  20.     }
  21.    
  22.     /*
  23.      * Envoie le messages msg à l'interlocuteur
  24.      * @param msg un message
  25.      */
  26.     public void sendMessage(String msg) throws IOException {
  27.         out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()), true);
  28.         out.println(msg);
  29.     }
  30.  
  31.     /*
  32.      * Attend le prochain message de l'interlocuteur
  33.      * @return le message reçu de l'interlocuteur
  34.      * @exception IO Exception en cas d'erreur de transmission
  35.      */
  36.     public String waitForMessage() throws IOException {
  37.         in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  38.         return in.readLine();
  39.     }
  40.     /*
  41.      * Permet l'établissement d'une connexion avec un hôte distant
  42.      * @param isServer : si true, l'instance est un serveur et se met en attente d'une connexion
  43.      * @port le numéro de port sur lequel établir la connexion
  44.      * @addr si isServer est false, addr contient l'adresse du serveur à contacter
  45.      * @exception IOException s'il y a un problème pendant l'établissement de la connexion
  46.      */
  47.     public void connect(boolean isServer, int port, String addr) throws IOException{
  48.         if (isServer) {
  49.             ServerSocket server = new ServerSocket(port);
  50.             socket = server.accept();
  51.             System.out.println("Ecoute sur le port " + port);
  52.         } else {
  53.             socket = new Socket("localhost", port);
  54.         }
  55.     }
  56.     /*
  57.      * Ferme tous les flux d'une connexion établie.
  58.      * @exception IOException en cas d'erreur dans la fermeture de connexion
  59.      */
  60.     public void closeConnection() throws IOException{
  61.         in.close();
  62.         out.close();
  63.         socket.close();
  64.     }
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement