标题:CAsyncSicket::Receive()
只看楼主
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
结帖率:66.67%
 问题点数:0 回复次数:1 
CAsyncSicket::Receive()
在调用系统函数CAsyncSocket::Receive()时的问题:


即调用该函数,返回值是一个int,据我了解,该返回值是从缓存中所读取的byte数组(我的操作对象)的长度,但是实际中,我所得到的返回值和理论值差距很大。

具体需要实现的功能为:利用网口接收一包1075个字节的数据包,由于数据包比较大,所以分几次读取,每次读取后,进行拼帧操作,每次拼帧后,判断帧头帧尾,判断正确后按照一包数据进行解析,如果不正确,则根据拼帧完成后的字节长度进行抛帧,继续新的读取操作。

目前由于在调用     pSock->Receive()    函数对读取的数据长度进行获取时,返回值经断点监视调试,非常诡异。


由于涉及商业机密,代码不方便贴出来,只进行了口头的描述,各位老铁帮帮忙,提供一下思路,我这边继续调试。不甚感谢!!!!!!

在线苦等!!!!!
搜索更多相关主题的帖子: 函数 返回值 读取 长度  
2017-08-15 14:39
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
得分:0 
解决了,原因是发送端网口问题,网口发送过程中,因故障一次没有发送完,故分了几次发送,分批次发送时数据就有错乱和错码掺杂,系统函数返回的数据长度是正确的,通过查看内存可以判断,换了一台工控机,发送接收都正常了

对待编程,要像对待情人一样
2017-08-17 09:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480061-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075891 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved