Advertisement
dig090

ChatClient for SO question

May 20th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.43 KB | None | 0 0
  1. package com.j256.ormlite;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.PrintWriter;
  7. import java.net.Socket;
  8. import java.net.UnknownHostException;
  9.  
  10. public class ChatClient {
  11.     private static int port = 8001;
  12.     private static String host = "localhost";
  13.  
  14.     private static BufferedReader stdIn;
  15.  
  16.     public static void main(String[] args) throws IOException {
  17.  
  18.         Socket server = null;
  19.  
  20.         try {
  21.             server = new Socket(host, port);
  22.         } catch (UnknownHostException e) {
  23.             System.err.println(e);
  24.             System.exit(1);
  25.         }
  26.  
  27.         stdIn = new BufferedReader(new InputStreamReader(System.in));
  28.  
  29.         PrintWriter out = new PrintWriter(server.getOutputStream(), true);
  30.         BufferedReader in = new BufferedReader(new InputStreamReader(server.getInputStream()));
  31.  
  32.         System.out.print("Autore: ");
  33.         String auth = stdIn.readLine();
  34.         out.println("Autore: " + auth);
  35.         String serverResponse = in.readLine();
  36.         System.out.println(serverResponse);
  37.  
  38.         if (serverResponse.startsWith("SERVER: Benvenuto")) {
  39.             /* create a thread to asyncronously read messages from the server */
  40.             ServerConn sc = new ServerConn(server);
  41.             Thread t = new Thread(sc);
  42.             t.start();
  43.  
  44.             /* loop reading messages from stdin and sending them to the server */
  45.             System.out.println("Reading from stdin");
  46.             while (true) {
  47.                 String msg = stdIn.readLine();
  48.                 if (msg == null || msg.equals("quit")) {
  49.                     break;
  50.                 }
  51.                 System.out.println("Read from stdin: " + msg);
  52.                 out.println(msg);
  53.             }
  54.             System.out.println("Exit.");
  55.             server.close();
  56.         } else {
  57.             System.out.println("Exit.");
  58.             System.out.println("---Client Error---");
  59.         }
  60.     }
  61.  
  62.     private static class ServerConn implements Runnable {
  63.         private BufferedReader in = null;
  64.         private Socket server;
  65.  
  66.         public ServerConn(Socket s) throws IOException {
  67.             server = s;
  68.             in = new BufferedReader(new InputStreamReader(s.getInputStream()));
  69.         }
  70.  
  71.         public void run() {
  72.             try {
  73.                 /*
  74.                  * loop reading messages from the server and show them on stdout
  75.                  */
  76.                 while (true) {
  77.                     String msg = in.readLine();
  78.                     if (msg == null || msg.equals("quit")) {
  79.                         break;
  80.                     }
  81.                     System.out.println(msg);
  82.                 }
  83.                 System.out.println("Closing server reader");
  84.                 this.close();
  85.             } catch (IOException e) {
  86.                 System.err.println(e);
  87.             }
  88.         }
  89.  
  90.         public void close() throws IOException {
  91.             in.close();
  92.             server.close();
  93.         }
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement