我知道服务器套接字通道被注册为侦听接受,当被接受时,通道被注册为读取,一旦读取,它就被注册为写入,这是通过使用interestops方法将相关密钥添加到selectionkey的兴趣集来完成的。
但是,当我们从一个键中删除一些有趣的内容时,例如 key.interestOps(key.interestOps() & ~SelectionKey.OP_READ);
这里到底发生了什么?这是否意味着服务器将不侦听任何传入到属于此套接字的通道的请求,而源通道将忽略服务器的此决定,并可能继续向服务器发送数据?或者它会以某种方式通知渠道来源这个决定。
在分组交换术语中,如果该分组所属的信道的感兴趣密钥被“取消设置”,则上述操作是否有效地与服务器接收分组并丢弃该分组相同
1条答案
按热度按时间jhiyze9q1#
但是,当我们从一个键中删除一些有趣的内容时,例如
key.interestOps(key.interestOps() & ~SelectionKey.OP_READ);
这里到底发生了什么?实际上发生的事情是这样的:
这是否意味着服务器将不监听任何传入的请求到属于这个套接字的通道
这意味着
Selector
不会触发任何OP_READ
事件,如果数据通过套接字到达。这并不意味着数据不会被接收到。而源通道将忽略服务器的这一决定,并可能继续向服务器发送数据?
如果您所说的“源-通道”是指对等方,则无论如何都不建议这样做,除非接收缓冲区在接收器处填满。
或者它会以某种方式通知渠道来源这个决定。
不。
在分组交换术语中,如果该分组所属的信道的感兴趣密钥被“取消设置”,则上述操作是否有效地与服务器接收分组并丢弃该分组相同。
不。