• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

Netty使用keepAlive(不是IdleState机制),如何捕获对方不再应答KeepAlive

如题,在netty中,设置了channelOption中的keepAlive属性为true,如果不用IdleState机制,而是通过修改windows的注册表,实现了keepAlive时间和发包间隔的修改后,比如10秒检测到链路空闲,则服务器向该客户端开始发起keepAlive包,如果连续5次客户端都没有应答,则认为客户端已经断开连接,需要进一步处理。
但是5次keepAlive都没有应答,这个现象本身时通过什么来捕获的呢?
1)已经尝试了重写了exceptionCaught函数,但是抓包看客户端已经不在线,而且keepAlive包已经连续发5次没有应答,但是并没有捕获到此异常。
2)查资料得知C语言的keepAlive是可以通过socket的read函数的返回值比如-1来获知此异常,而netty中的channelRead没有对接收状态的判断和返回,而channelRead内部调用的messageReceive函数呢?
3)或者,因为netty对原生socket进行了一些封装,所以是无法捕获的吗?
请各位有经验者不吝赐教,真心感谢各位的帮助!

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!