package chat2;
 
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
 
public class chat_server {
  ObjectOutputStream oos;
  ObjectInputStream ois;
  Vector output;
  public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    new chat_server().go();
  }
  public void go() throws Exception {
    try {
      ServerSocket serverSock = new ServerSocket(8888);
      while(true)
      {
        Socket cSocket = serverSock.accept();
        //server輸出用串流(server to client)
        oos = new ObjectOutputStream(cSocket.getOutputStream());
        Thread t = new Thread(new Process(cSocket));
        t.start();
        System.out.println(cSocket.getLocalSocketAddress() + "有" + (t.activeCount() - 1) + "個連接");
      }
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      System.out.println("連接失敗 in go");
    }
  }
  
  public class Process implements Runnable{
    Socket sock;
    public Process(Socket cSocket) {
      try {
        sock = cSocket;
        //client輸出用串流(client to server)
        ois = new ObjectInputStream(sock.getInputStream());
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("連接失敗 in Process");
      }
    }
    
    public void run(){
      try {
        object_data data = (object_data)ois.readObject();
        System.out.println(data);
        while(data != null)
        {
          System.out.println("test ok");
          System.out.println(data.getuser_name());
          System.out.println(data.getnor_chat());
          System.out.println(data.getkey_num());
          //System.out.println(data.getimg());
          data = null;
          ois.close();
          oos.close();
        }
      } catch (ClassNotFoundException | IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("傳送失敗 in run");
      }
    }
  }
}