Pastebin launched a little side project called HostCabi.net, check it out ;-)Pastebin is 300% more awesome when you are logged in. Sign Up, it's FREE!
Guest

ChatClient for SO question

By: dig090 on May 20th, 2012  |  syntax: Java  |  size: 2.43 KB  |  hits: 18  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }