我正在尝试用于非阻塞通信的Java.nio包。所以我在Selector中获得了我的ServerSocketChannel和所有连接的客户端(SocketChannel),并使用Selector.select()等待数据(OP_ACCEPT/OP_READ)。在SocketChannel/ServerSocketChannel中使用底层的Socket/ServerSocket?
我的问题是:我可以 - 而不是使用ByteBuffer并直接读取SocketChannel.read() - 使用底层套接字,获取InputStream并使用该流读取?或者这会搞砸选择的东西?
read()是一个阻塞操作。只有NIO可以用于阻塞或非阻塞模式。 IO只是阻塞。 –