tcp/ip通信时,传送结构体数组,对方收不到数据,大家帮帮我,这是怎么回事?
如题,我在VS2008下,按下代码发送数据后,在接收端为什么收不到发送端发出的结构体数组中的任何数据,问题在哪,大家帮下忙看看。。。
c++? TCP??UDP?通信 通信
//结构体定义
typedef struct
{
unsigned short n;
unsigned char c;
}MYSTRUCT;
typedef struct
{
unsigned short n;
MYSTRUCT objectArray[3];
}MYPOINTSTRUCT;
//发送端
MYPOINTSTRUCT mystruct;
memset(&mystruct, 0, sizeof(MYPOINTSTRUCT));
mystruct.n = 2;
mystruct.objectArray[0].n = 12;
mystruct.objectArray[0].c = 'y';
mystruct.objectArray[1].n = 56;
mystruct.objectArray[1].c = 'b';
char s[100];
memset(s, 0, sizeof(s));
memcpy(s, (char*)&mystruct, sizeof(MYPOINTSTRUCT));
::send(sock, s, strlen(s), 0);
//接收端
char buffer[100];
memset(buffer, 0, sizeof(buffer));
::recv(sock, buffer, sizeof(buffer), 0);
MYPOINTSTRUCT mystruct;
memset(&mystruct, 0, sizeof(MYPOINTSTRUCT));
memcpy(&mystruct, buffer, strlen(buffer)); //此处的mystruct仅只有mystruct.n有数据==2
[解决办法]
::send(sock, s, strlen(s), 0);这里用strlen数据可能会不对,你试试sizeof(MYPOINTSTRUCT)