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

tcp/ip通信时,传送结构体数组,对方收不到数据,大家帮帮小弟我,这是咋回事

2013-04-20 
tcp/ip通信时,传送结构体数组,对方收不到数据,大家帮帮我,这是怎么回事?如题,我在VS2008下,按下代码发送数

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)

热点排行