[英]Use the underlying Socket/ServerSocket in a SocketChannel/ServerSocketChannel?
我正在嘗試Java.nio-package進行非阻塞通信。 因此,我將我的ServerSocketChannel和所有連接的客戶端(SocketChannel)放在一個Selector中,並使用Selector.select()等待數據(OP_ACCEPT / OP_READ)。
我的問題是:我是否可以(而不是使用ByteBuffer並直接通過SocketChannel.read()進行讀取),而是使用底層的Socket,獲取InputStream並使用該流進行讀取? 還是會弄亂選擇器的東西?
你不能
http://download.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html#getInputStream%28%29
如果此套接字具有關聯的通道,則結果輸入流會將其所有操作委托給該通道。 如果通道處於非阻塞模式,則輸入流的讀取操作將引發IllegalBlockingModeException。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.