Facebook
From Thái Phan Minh Hoàng, 1 Month ago, written in Java.
Embed
Download Paste or View Raw
Hits: 178
  1. import java.io.BufferedReader;
  2. import java.io.BufferedWriter;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.OutputStreamWriter;
  6. import java.net.Socket;
  7. import java.util.Scanner;
  8.  
  9. public class Client {
  10.     private BufferedReader in;
  11.     private BufferedWriter out;
  12.     private Socket socket;
  13.     String userName;
  14.     public Client(Socket socket, String username) {
  15.         try {
  16.             this.socket = socket;
  17.             this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  18.             this.out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
  19.             this.userName = username;
  20.         } catch (IOException e) {
  21.             closeEveryThing(in, out, socket);
  22.         }
  23.     }
  24.     public void closeEveryThing(BufferedReader in, BufferedWriter out, Socket socket) {
  25.         try {
  26.             if (in != null) in.close();
  27.             if (out != null) out.close();
  28.             if (socket != null) socket.close();
  29.         } catch (IOException e) {
  30.             e.printStackTrace();
  31.         }
  32.     }
  33.     public void sendMessage() {
  34.         try {
  35.             out.write(userName);
  36.             out.newLine();
  37.             out.flush();
  38.             Scanner sc = new Scanner(System.in);
  39.             while (socket.isConnected()) {
  40.                 System.out.print("> ");
  41.                 String messageToSend = sc.nextLine();
  42.                 out.write(userName + ": "  + messageToSend);
  43.                 out.newLine();
  44.                 out.flush();
  45.             }
  46.             sc.close();
  47.         } catch (IOException e) {
  48.             closeEveryThing(in, out, socket);
  49.         }
  50.     }
  51.     public void listenForMessage() {
  52.         Thread thread = new Thread(new Runnable() {
  53.             @Override
  54.             public void run() {
  55.                 String msgFromGroupChat;
  56.                 while (socket.isConnected()) {
  57.                     try {
  58.                         msgFromGroupChat = in.readLine();
  59.                         System.out.println(msgFromGroupChat);
  60.                     } catch (IOException e) {
  61.                         closeEveryThing(in, out, socket);
  62.                     }
  63.  
  64.                 }
  65.             }
  66.         });
  67.         thread.start();
  68.     }
  69.     public static void main(String[] args) throws IOException {
  70.         Scanner sc = new Scanner(System.in);
  71.         System.out.print("Enter your username: ");
  72.         String username = sc.nextLine();
  73.         Socket socket = new Socket("localhost" ,8512);
  74.         Client client = new Client(socket, username);
  75.         client.sendMessage();
  76.         client.listenForMessage();
  77.         sc.close();
  78.     }
  79. }
  80.