2017-10-13 1 views
0

Gibt es eine Möglichkeit, dass ein NIO-Server eine Verbindung akzeptiert und dann mit dem Schreiben beginnt?SelectionKey.OP_ACCEPT | SelectionKey.OP_WRITE verursacht IllegalArgumentException

Wenn ich die Tastenkombination

SelectionKey.OP_ACCEPT | SelectionKey.OP_READ 

Ich erhalte eine IllegalArgumentException. Ich habe einen Server, der eine eingehende Verbindung akzeptiert und dann sofort in diesen Kanal schreiben muss. Ich kann das anscheinend nicht tun.

+0

@ close-voter Es ist nichts "zu breit" über diese Frage, es sei denn, Sie wissen nichts darüber. Es hat eine kurze und süße Antwort. – EJP

+0

Sicher meinst du 'SelectionKey.OP_WRITE' oben? – EJP

Antwort

0

Das liegt daran, dass der angegebene Wert keinen Sinn ergibt. Sie können nicht von einem hörenden Anschluss lesen oder in diesen schreiben, und Sie können nicht von einem nicht hörenden Anschluss akzeptieren.

In jedem Fall können Sie sofort ohne OP_WRITE auf den akzeptierten Kanal schreiben. Dies wird nur verwendet, wenn Sie den Socket-Sendepuffer gefüllt haben.

Verwandte Themen