2015-02-12 43 views

回答

2

在一個線程內處理多個流(套接字)是可能的。它需要使用插座的通道(從java.nio.channels中)和(單個)Selector.

您創建一個選擇和寄存器SocketChannels.

要了解任何新的可能性的I/o操作時,您可以撥打Selectorselect()方法,該方法會在任何一個通道準備好讀取,寫入或接受時返回。您必須學習準備好的通道(即獲取其「密鑰」),並調用其適當的數據傳輸方法。

有一些示例代碼可以在網上找到。 PS:使用線程可能更容易。

+0

是與網絡套接字相同的數據套接字嗎? – committedandroider 2015-02-12 06:36:32

+0

@committedandroider Java使用術語「ServerSocket」作爲通信端點的「監聽套接字」和「套接字」,也是「流向連接套接字」(我傾向於稱之爲「數據套接字」)。 – laune 2015-02-12 07:02:15

+0

不,我想表示接收數據的套接字。 – 2015-02-12 07:03:41

相關問題