关于netty 服务端 收 C语言客户端 连接 接收数据问题
Bug 描述
在 arm 平台 ,使用 netty 作为 服务端 监听 接收数据,使用的 FixedLengthFrameDecoder(4096) 定长编解码 数据包 程序运行一段时间后,出现服务端接收不到数据问题,
客户端是 c语言开发的 采用短连接 。业务来了,每次是建立连接,发送自定义业务数据请求,响应 ,然后c语言客户端主动关闭连接。
复现时机
Bug 是偶发。目前是研发阶段,我们是服务器整机交付,每天服务器是断正常断电,这个bug 可能几周出现一次 。重启jar 后又可以正常接收请求了 。 系统是 arm 平台。
比如:“Java 8、netty 4.1.91 hutool 工具 5.18.18”
期望结果
期望定位下 为什么没有触发 channelActive 方法,以及需要怎么配置才能间断收数据。
错误信息
无
自己的思路和解决方案
通过 tcpdump 抓包,tcp 三次握手成功 的 3个数据包,c语言客户端发送第一包数据4096个字节。在抓包的 pcap日志文件中都有,然后就是netty服务端没有响应了。 但是 netty 服务端 handler 实现的 SimpleChannelInboundHandler 里面的channelActive方法里面 日志没有打印,也就是 channel 没有激活, 自定义的实现的解码器 实现 ByteToMessageDecoder 中的 decode 方法开始的地方 日志也没有打印。 exceptionCaught() 方法也没有打印 异常日志 。
相关资料
相关的 server 启动监听配置 ,自定义handler ,自定义 decoder https://codecopy.cn/post/qh8v78
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
云图库项目 ShardingSphere 5.2.x 下更新分片键导致的 UPDATE 失败问题分析与解决
6
Spring AI MCP Stdio 报错信息排查
9
记录一个 Idea 配置文件解析的问题,最近更新了 Idea 发现打开之前的项目的 application.yml 全部飘黄,更新之前是不存在的 key 飘黄,现在是全部都票黄了,看着非常难受。解决:File | Settings | Languages & Frameworks | Schemas and DTDs | Remote JSON Schemas 取消勾选 Use schemasto
7
LangChain4j 调用 DeepSeek 工具时报 400?用 pi 抓包定位,同包覆盖修复 reasoning_content
7
最近在使用ChatGPT/Codex过程中发现了一个官方bug:高频日志写盘,会损坏电脑磁盘的寿命。桌面版和CLI都有这个问题,目前最新版的ChatGPT/Codex还没有彻底解决这个问题(虽然官方自称已经修复了,但实测还是有高频日志写盘问题)。建议使用下面这段提示词发给AI让它检查和修复:帮我检查 ~./codex/logs_2.sqlite 是否因 TRACE 日志持续高频写盘;如果中招,先备
2
