Soket通讯问题,两次Socket消息内容连在了一起了怎么办 连接调用了两次Send第一次内容为:123第二次内容为:456Server端却只收到一个消息,内容为:123456,两次内容被连在一起了我想把们分成两次收(我现在的做法就是加了分隔符),很久以前的程序了,想改一下,你们都是如何解决的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 同意楼上,在TCP层最好定下自己的数据通信协议,根据发包的先后顺序来分别接收数据我感觉是很不可靠的比如struct OwnData{char Magic[3];char Data[1024];} 最好的解决方式,你必须在一次send后跟上一次receive以保证和服务器有来回的通信,好处1,不会超出缓冲区2.不会连接起数据3.你可以保持长时间通讯 很正常的现象,数据长度+数据 不就解决问题了。比如头4字节表示数据的长度后面数据,你收到的数据可能是 len1+"123"+len2+"456", 一看len1等于3, 表示后面3个字节是一组数据,处理,再看包长又是3,表示后面3个字节也是数据,不就把“123” “456”分开了吗。 CAsyncSocket::Send函数发送字符缺失 Bing(必应) P2P 广域网版本正式开放测试, 内外网皆可沟通,支持广域网聊天,有防火墙穿透能力! 怎么样在鼠标放到按钮上时显示提示? 为什么我的VC++6.0没有Info View? 系统服务进程之间的通信有什么好的办法吗? 怎么更改一个程序的名字?????? VC与VB如何实现双向通信? Tree控件? 如何画出半透明效果 请问:在win32 application 做的程序中怎样显示对话框? (要能利用资源编辑器最好) 类成员函数在静态函数中被忽略 如何用API 实现http文件上传?
比如
struct OwnData{
char Magic[3];
char Data[1024];
}
好处1,不会超出缓冲区
2.不会连接起数据
3.你可以保持长时间通讯
你收到的数据可能是 len1+"123"+len2+"456", 一看len1等于3, 表示后面3个字节是一组数据,处理,再看包长又是3,
表示后面3个字节也是数据,不就把“123” “456”分开了吗。