这个问题捆饶我很久了, 就是TCP粘包问题, 这个原理就不说了,
就是我定义一个结构体 里面包括结构体大小 和数据大小 和缓冲区,如
struct test
{
int lenMsg;
int dataLen;
byte[]data;
}
服务器服务器接受的时候能根据LENMSG 字段来判断数据包的大小,来分配缓冲区但有个问题,
假如 我写了三个 test 大小都是 20字节 连续发送后还是要粘包, 是不是要先发送 包头 就是int lenMsg;
int dataLen; 这个 然后在发送 数据 ,但这样 数据和包就没的关联了吗.
我写了个函数 就是(byte[]*data)
{int total=strlen(data);
while(total>leng)
{}
大楷就是先发送数据大小然后就发送数据的方法 能使用,如果用这种发送就不需要定义结构体了哦,我想用结构体的方法,大家能我我详细的解答一下吗 我为这个问题都要崩溃了.
}
就是我定义一个结构体 里面包括结构体大小 和数据大小 和缓冲区,如
struct test
{
int lenMsg;
int dataLen;
byte[]data;
}
服务器服务器接受的时候能根据LENMSG 字段来判断数据包的大小,来分配缓冲区但有个问题,
假如 我写了三个 test 大小都是 20字节 连续发送后还是要粘包, 是不是要先发送 包头 就是int lenMsg;
int dataLen; 这个 然后在发送 数据 ,但这样 数据和包就没的关联了吗.
我写了个函数 就是(byte[]*data)
{int total=strlen(data);
while(total>leng)
{}
大楷就是先发送数据大小然后就发送数据的方法 能使用,如果用这种发送就不需要定义结构体了哦,我想用结构体的方法,大家能我我详细的解答一下吗 我为这个问题都要崩溃了.
}
解决方案 »
- 制作一个 《挤房器》 有一重大难点困扰我一个星期,希望能有人解惑,大家共同探讨。
- casyncsocket的问题
- 哪位高手有蚂蚁或蚁群算法的实例啊?小弟做毕设要用到!!!
- 急求!!!! 小弟跪求 一算法 关于二叉树
- 如何在VC的单文档(SDI)类型的程序中加控件?
- 请教一个关于DAO查询的问题,郁闷。。。。(来者有分)!
- 小第正在写一个SOCK5服务器,有个关于TCP客户端的问题
- 50分的右键菜单问题
- VB转VC的问题
- 如何将 GMP 编译为 .lib 库 以供VC 使用?
- 求助:char数组与vector
- Software which can supply localization injection for VB6
然后根据lenMsg循环接收指定大小的包!
1.
recv(sock, buf,4, 0);2.
while()
{
recv(sock,buf2,Len - HasRecv,0);
}