SelectionKey.OP_ACCEPT | SelectionKey.OP_WRITE导致IllegalArgumentException

SelectionKey.OP_ACCEPT | SelectionKey.OP_WRITE导致IllegalArgumentException

问题描述:

有没有办法让NIO服务器接受连接,然后开始写入?SelectionKey.OP_ACCEPT | SelectionKey.OP_WRITE导致IllegalArgumentException

如果我使用组合键

SelectionKey.OP_ACCEPT | SelectionKey.OP_READ 

我得到一个IllegalArgumentException。我有一个接受传入连接的服务器,然后立即需要写入该通道。我似乎无法做到这一点。

+0

@ close-voter关于这个问题没有什么“太宽泛”,除非你对此一无所知。它有一个简短而甜蜜的答案。 – EJP

+0

你的意思是上面的'SelectionKey.OP_WRITE'? – EJP

这是因为指定的值没有意义。您无法读取或写入侦听套接字,也无法从非侦听套接字接受。

在任何情况下,您都可以立即开始写入接受的通道,而无需OP_WRITE。这只在您填充套接字发送缓冲区时才使用。