2012-02-02 39 views
0

我正在嘗試使用套接字流進行多個數據傳輸。插座上的多個輸出

  • 用於發送文字
  • 發送List<>
  • ...

我可以只使用一個插座,用於發送String,告訴客戶什麼樣的數據,以期待的,其次由預期的數據(在這種情況下爲List<>)?

這裏就是我想的是:

//declarations 
//outputs and inputs 
    private ObjectInputStream input; 
    private ObjectOutputStream output; 
    private OutputStream checkStatus; 
    private PrintWriter out; 
    ... 
    private void forwardMessage(List<User> clients) throws IOException { 
     checkStatus = client.getOutputStream(); 
     out = new PrintWriter(new OutputStreamWriter(checkStatus), true); 
     out.println("Command Option 1");  
     client.shutdownOutput(); 
     output = new ObjectOutputStream (client.getOutputStream()); 
     for (int i = 0; i < clients.size(); i++) {  
      output.flush(); 
      output.writeObject(clients.get(i)); 
      output.flush(); 
      output.reset(); 
     } 
     output.writeObject(null); 
     client.shutdownOutput(); 
    } 

給予當我嘗試這是「java.net.SocketException: Socket is closed

我也試圖關閉的OutputStream但給出相同的結果誤差。

我怎樣才能使用一個流套接字進行多個數據傳輸?

+2

why client.shutdownOutput(); getOutputStream()之前? – kosa 2012-02-02 19:23:27

回答