看动画,学JavaNIO教程23:如何将 Channel 注册到 Selector?

看动画,学JavaNIO教程23:如何将 Channel 注册到 Selector?
当我们创建好 Selector 以后
就可以将 Channel 注册到里面去
当然了
也不是所有 Channel 都可以注册的
只有 SelectableChannel 旗下的成员才可以
例如
DatagramChannel、SocketChannel 和 ServerSocketChannel
这三个是最常用的
注册需要用到 SelectableChannel 里的 register 方法
【注】请观看视频查看具体内容

观看视频

register 方法描述
可监听的事件

package main;

import java.io.IOException;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.nio.channels.*;
import java.util.Set;

/**
 * @author 【看动画,学Java】https://student-api.iyincaishijiao.com/t/Nqrff3f/
 * @author 【官方网站】gorhaf.com
 * @author 【微信公众号】gorhaf
 * @author 【个人微信号】gorhafapp
 * @author 【抖音】人人都是程序员
 * @author 【B站】人人都是程序员
 */
public class Server {
    
    

    public static void main(String[] args) {
    
    
        try {
    
    
            // 创建通道选择器
            Selector selector = Selector.open();
            // 创建服务端套字节通道
            ServerSocketChannel server = ServerSocketChannel.open();
            // 绑定监听端口号
            server.bind(new InetSocketAddress(8080));
            // 将服务端套字节通道注册到选择器里
            server.register(selector, SelectionKey.OP_ACCEPT);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

视频全集

其他教程

代码

猜你喜欢

转载自blog.csdn.net/gorhaf/article/details/124680063
今日推荐