【问题标题】:SO_TIMEOUT in non blocking channel in netty网络中非阻塞通道中的 SO_TIMEOUT
【发布时间】:2014-05-18 12:35:40
【问题描述】:

如果通道在超时毫秒内没有收到读取/响应,那么 SO_TIMEOUT 是否会过期非阻塞通道?

bootstrap.group(workerGroup).channel(NioSocketChannel.class).
.handler(channelInitializer).option(ChannelOption.SO_TIMEOUT, 100);

另外,该选项是否也适用于服务器频道?喜欢:

serverBootstrap.group(bossGroup, workerGroup).channel(NioServerSocketChannel.class).
localAddress(new InetSocketAddress(8800)).childHandler(serverChannelInitializer).
option(ChannelOption.SO_TIMEOUT, 100).bind().sync();

【问题讨论】:

  • 它只在阻塞模式下有效。非阻塞模式下的超时是自相矛盾的。

标签: netty


【解决方案1】:

没有。 SO_TIMEOUT 仅对 OIO 套接字传输有效。您应该在您的 userEventTriggered() 实现中使用 IdleStateHandler 并处理 IdleStateEvent

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 2023-03-06
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2017-12-08
    相关资源
    最近更新 更多