我正在尝试连接到远程服务器并在我的线程中发送登录消息:
@Override
public void run() {
try {
address = new InetSocketAddress(host, port);
incomingMessageSelector = Selector.open();
socketChannel = SocketChannel.open();
socketChannel.configureBlocking(false);
socketChannel.connect(address);
socketChannel.register(incomingMessageSelector, SelectionKey.OP_READ);
serverManager.loginToServer();
}
}
Run Code Online (Sandbox Code Playgroud)
loginServer()是一个向服务器发送消息但我不断得到的方法:
java.nio.channels.NotYetConnectedException
Run Code Online (Sandbox Code Playgroud)
如何在发送此loginServer()方法之前检查并等待连接?
use*_*421 10
如果您以非阻止模式连接,您应该:
OP_CONNECTfinishConnect()OP_CONNECT并注册,OP_READ或者OP_WRITE取决于您接下来要做什么connect()或者finishConnect()抛出异常,关闭频道并再试一次或忘记它或告诉用户或任何适当的.如果在通道连接之前不想做任何事情,请在阻塞模式下进行连接,并在连接成功时进入非阻塞模式.
| 归档时间: |
|
| 查看次数: |
8082 次 |
| 最近记录: |