关于TCP协议接收数据问题

2019-07-17 11:11发布

我用TCP协议接收下位机发送的数据,由于数据量很大,所以TCP一帧一帧的发送。请问我该怎么设置一个缓存区将数据先缓存起来然后一起取出,由于我对TCP不是很了解,所以不知道怎么设置缓存区,导致收到的数据只有最后一帧的数据,求大神帮忙看下程序指点一下。
改版网口通信.zip 下载积分: 积分 -1 分
11.53 KB, 下载次数: 356, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
bamenwhj
2019-07-18 06:47
本帖最后由 bamenwhj 于 2015-12-15 15:00 编辑
mean123 发表于 2015-12-15 12:46
下位机一次发送的数据量很大,所以一帧一帧的传送,我程序里面读取TCP数据函数放在while循环中,所以每次也是一帧一帧读,但前一次读取的数据会被下一次数据覆盖。我在网口调试助手里面发送123给我的程序,重复发送10次,结果只有一次的数据就显示123而不是123连续十次出现,请问我该怎么解决? ...


1、模式为默认值,超时为-1,字节大小为30=3*10,即一次读出10个123:“123123123123123123123123123132”;
关于【读取TCP数据】,模式一般选取默认值(即标准模式),读取的内容由字节大小决定,对于变长度的数据,一般的协议中会用前两位表示这一帧数据的长度,先读出数据长度,再读数据。
2、如果你要的是10次123(而不是一次连续的10个123),那你的程序也可以认为是正确的,只是读的很快,你看不出连续的10次。如果你想要记录相应的数据,可以考虑入队列的方法,每次接收到即入一次队列。

一周热门 更多>