网络包解包错误 与 标准io(linux)

程序都是linux下,客户端连接服务器。

服务器解包时偶尔出现消息包长度错误,用另一个功能类似的客户端替换这个客户端就好好地!(同一个网络库)

从各个方面查找,buffer数据管理、多线程交互安全等等,结果最后的结论令人无语,
在客户端,一句printf(...)把数据输出到socket中了,而此socket值为1,数据未经过send。。。也未在buffer中,故客户端这边数据咋都是好好的。。。

本质原因在于:
      生成守护进程时对标准io的处理不恰当造成的。

直接参考nginx的守护进程创建函数,测试OK!。

特记录。

posted @ 2019-03-21 12:05  lcinx  阅读(728)  评论(0编辑  收藏  举报