C语言开发的长连接
今天遇到了个棘手的问题,以前从来没出现过:
msgrcv: Argument list too long
导致长连接出错
网上查了原因 msgrcv的参数msglen小于消息体中消息的长度,然后通过命令ipcs 查看到消息队列中有一个长度为4897字节的消息未被读掉,而msglen的值为1893。
执行ipcrm -q msgid 删除未读的消息,重启应用,可以暂时重新发交易了,但是这4897字节的数据从哪来的呢?通过打印日志发现是对方socket发过来的。交易报文出错了~