java - 在Netty 4.0.15中,java.nio.channels.IllegalSelectorException异常

标签 java netty

我正在尝试使用 NioUdtMessageConnectorChannel 作为 channel 创建一个用于接收 UDP 消息的服务器。粘贴服务器代码

EventLoopGroup group = new NioEventLoopGroup(50,
                Executors.defaultThreadFactory());


    try {
        Bootstrap b = new Bootstrap();
        b.group(group);
        b.channel(NioUdtMessageConnectorChannel.class);
        b.option(UdtChannelOption.SO_BROADCAST, true);
        b.option(UdtChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 1024);
        b.option(UdtChannelOption.PROTOCOL_RECEIVE_BUFFER_SIZE, 1024);
        b.option(UdtChannelOption.PROTOCOL_SEND_BUFFER_SIZE, 1024);
        b.option(UdtChannelOption.TCP_NODELAY, true);
        b.option(UdtChannelOption.SO_RCVBUF, 256 * 1024);
        b.handler(new SNMPTrapHandler());
        b.bind(PORT).sync().channel().closeFuture().await();
    } finally {
        group.shutdownGracefully();
    }

但是,我遇到了以下错误

log4j:WARN Please initialize the log4j system properly.
java.nio.channels.IllegalSelectorException
    at sun.nio.ch.SelectorImpl.register(Unknown Source)
    at java.nio.channels.spi.AbstractSelectableChannel.register(Unknown Source)
    at io.netty.channel.nio.AbstractNioChannel.doRegister(AbstractNioChannel.java:308)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:439)
    at io.netty.channel.AbstractChannel$AbstractUnsafe.access$100(AbstractChannel.java:374)
    at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:418)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
    at java.lang.Thread.run(Unknown Source)

具体的错误是什么?

最佳答案

创建 NioEventLoopGroup 时必须指定 UDT 选择器提供程序。例如:

new NioEventLoopGroup(..., NioUdtProvider.MESSAGE_PROVIDER);

更多信息请引用the UDT examples .

关于java - 在Netty 4.0.15中,java.nio.channels.IllegalSelectorException异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21309836/

相关文章:

java - jsp中从hashmap中获取key和value

java - OIO在Java中是什么意思?

ssl - Netty Echo 服务器/客户端 - SSL 不起作用

java - 安卓工作室 : Check for a custom build type

java - 动态构建数据表与脚本

java - Spring Boot 不从 application.properties 加载用户名

java - Netty 异常处理 - Handler throws Exception,然后呢?

java - 除了语言选择(Scala vs Java)之外,Akka 和 Netty 之间还有什么区别?

java - Netty 和多个处理程序

java - 如何显示视频广告 (AdColony)