首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

初学者发问 怎么在TCP连接的基础之下实现同步

2012-09-28 
菜鸟发问如何在TCP连接的基础之上实现同步可能题目没阐述清楚A 端C/C++ codechar buf1[] {.....}int si

菜鸟发问 如何在TCP连接的基础之上实现同步
可能题目没阐述清楚
A 端

C/C++ code
char buf1[] = {.....};int size1 = ...;char buf2[] = {.....};int size2 = ...;send(con, buf1, size1, 0);send(con, buf2, size2, 0);


B 端
C/C++ code
char buf1[] = {.....};int size1 = ...;char buf2[] = {.....};int size2 = ...;recv(con, buf1, size1, 0);recv(con, buf2, size2, 0);


我的程序运行时,A端发送的数据buf1, buf2后,
B端总是把A端发送的两部分数据全部接收到了B端的buf1中。
可是 我想让A,B两端的两个缓冲一一对应。
请各位高手指教......


[解决办法]
不可能
这种情况叫做黏包
解决方法是自行制定协议
接收方放对数据作为流来处理
根据包头包尾把数据包解析出来
[解决办法]
这个需要你自己组装包来进行分析,发送的包跟到的包不可能这么一一对应

热点排行