读书人

tcp/ip通信时传送结构体数组对方收

发布时间: 2013-04-20 19:43:01 作者: rapoo

tcp/ip通信时,传送结构体数组,对方收不到数据,大家帮帮我,这是怎么回事?
如题,我在VS2008下,按下代码发送数据后,在接收端为什么收不到发送端发出的结构体数组中的任何数据,问题在哪,大家帮下忙看看。。。


//结构体定义
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
c++? TCP??UDP?通信 通信
[解决办法]
::send(sock, s, strlen(s), 0);这里用strlen数据可能会不对,你试试sizeof(MYPOINTSTRUCT)

读书人网 >C++

热点推荐