- 博客(2)
- 收藏
- 关注
原创 C++TCP解包(起始符+固定长度)
核心思路就是先用一个变量把每次收到的报文都拼起来,根据起始符和固定长度截取包,截取包后剩下的报文用来继续拼接后面的报文。由于缓冲区大小的原因可能会出现报文中间截断,但是TCP是可靠性传输,所以不会出现顺序错乱的问题。TCP通信中的丢包粘包问题一直是一个麻烦,特别是通信数据量大而且频繁的场景。不同的通信协议解决方案也有所不同,本文的通信协议为报文设置起始符+结束符。程序测试:紫色为接收到的包内容,蓝色为当前截取包后剩余的报文内容。3、中间夹杂其他无效的报文,结果收到两个包并且过滤掉无效报文内容。
2024-11-14 22:48:18
328
原创 C++TCP解包(起始符+结束符)
核心思路就是先用一个变量把每次收到的报文都拼起来,根据起始符和结束符截取包,截取包后剩下的报文用来继续拼接后面的报文。由于缓冲区大小的原因可能会出现报文中间截断,但是TCP是可靠性传输,所以不会出现顺序错乱的问题。TCP通信中的丢包粘包问题一直是一个麻烦,特别是通信数据量大而且频繁的场景。不同的通信协议解决方案也有所不同,本文的通信协议为报文设置起始符+结束符。程序测试:紫色为接收到的包内容,蓝色为当前截取包后剩余的报文内容。3、中间夹杂其他无效的报文,结果收到两个包并且过滤掉无效报文内容。
2024-11-12 22:50:02
502
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人