0
我有一个关于从SocketChannel
读取的问题。假设我们有这样的事情:我应该从SelectedSet中删除SelectionKey吗?
SelectionKey key = //;
ByteBuffer b = ByteBuffer.allocateDirect(128);
SocketChannel ch = (SocketChannel) key.channel();
int bytesRead = ch.read(b); //returns 128
因此,在这种情况下,我无法知道,如果从通道读取所有可用字节(因为字节读取和缓冲区的大小是一样的)。那么我需要从SelectedSet
删除key
?或者即使我删除,在下一个事件循环迭代中,我可以检索密钥并读取所有剩余字节?