程序都是linux下,客户端连接服务器。
服务器解包时偶尔出现消息包长度错误,用另一个功能类似的客户端替换这个客户端就好好地!(同一个网络库)
从各个方面查找,buffer数据管理、多线程交互安全等等,结果最后的结论令人无语,
在客户端,一句printf(...)把数据输出到socket中了,而此socket值为1,数据未经过send。。。也未在buffer中,故客户端这边数据咋都是好好的。。。
本质原因在于:
生成守护进程时对标准io的处理不恰当造成的。
直接参考nginx的守护进程创建函数,测试OK!。
特记录。