转自: http://blog.csdn.net/zhouhl_cn/article/details/6568893
连接就绪是所有就绪选择中最简单的,对它的处理也很简单。当客户端调用connect()并注册OP_CONNECT事件后,连接操作就会就绪。
- SocketChannel channel = SocketChannel.open();
- channel.configureBlocking(false);
- channel.connect(addr);
- channel.register(selector, SelectionKey.OP_CONNECT);
连接操作要分两步完成,首先就是调用connect(),然后在连接就绪时调用finishConnect(),该方法返回true表示连接成功。
- if (key.isValid() && key.isConnectable()) {
- SocketChannel ch = (SocketChannel) key.channel();
- if (ch.finishConnect()) {
- // Connect successfully
- // key.interestOps(SelectionKey.OP_READ);
- } else {
- // Connect failed
- }
- }