2017-01-06 74 views
0

我使用ObjectOutputStreams和ObjectInputStreams在Java中設置服務器。ObjectOutputStream混淆,需要說明

public class Server { 

private ServerSocket socket; 

private List<ObjectOutputStream> streams; 

public Server() { 
    streams = new ArrayList<>(); 
    try { 
     socket = new ServerSocket(2000); 
     while(true) { 
      Socket sock = socket.accept(); 
      streams.add(new ObjectOutputStream(sock.getOutputStream())); 
     } 
    } catch (IOException e) { 

    } 
} 

因此,服務器需要能夠從連接接收輸入,然後將此輸入發送到所有連接。

因此,當socket.accept()代碼執行時,我將新的ObjectOutputStream添加到Stream ArrayList。

我很困惑,這ObjectOutputStream,這是從服務器輸出到客戶端,還是客戶端輸出到服務器?

+0

它是服務器用來寫入客戶端的流。 – Berger

+0

從服務器的角度來看,它是*輸出*,所以它是從服務器到客戶端的。 –

+0

流寫入套接字。套接字被連接到服務器的客戶端讀取。 – Zircon

回答

0

偵聽並接受端口連接的代碼是服務器。

所以一切都從服務器的角度來看。

如果您啓動連接,您是客戶端,所有內容都將從客戶端的角度出發。