簡體   English   中英

在SocketChannel / ServerSocketChannel中使用基礎Socket / ServerSocket嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM