WCHNET_SocketSend返回0x11原因及解决方法

问题描述:

TCPCLIENT模式使用WCHNET_SocketSend发送有概率会返回0x11

按wchnet.h定义为内存溢出错误。

异常分析:

通过WCHNET_QueryUnack查看,发现异常时发送队列或缓冲区已经占满,导致再次发送时报发送内存溢出错误。

 

解决方法:

  1. 如果项目对RAM需求不大,可适当将WCHNET_NUM_TCP_SEG改大,建议大于WCHNET_NUM_TCP*5,默认为WCHNET_NUM_TCP*2

       

  2.如果项目对RAM需求比较大,对RAM资源比较敏感,不建议改动WCHNET_NUM_TCP_SEG,建议在执行发送前判断一下WCHNET_QueryUnack的返回值是否小于WCHNET_NUM_TCP_SEG,如果小于WCHNET_NUM_TCP_SEG再执行发送即可。

posted @ 2024-07-18 14:21  小小小学僧  阅读(241)  评论(0)    收藏  举报