struct Test {
char ip[30];
char name[30];
};
发送双方都需定义好此结构体。
接收:
Test te;
char buff[1024];
//清空
memset(buff, 0, 1024);
memset(&te, 0x00, sizeof(Test));//直接接收结构体,可行
recv(serConn, (char*)(&te), sizeof(Test), NULL);
//内存拷贝,程序崩溃。将字符串大小改成buff[100]后可行,查阅后,别人解释说是因为申请的栈过大
//还可通过配置属性->c/c++->代码生成->基本运行时检查 设置为默认值解决。
//memcpy(&te, buff, sizeof(buff));//接收char*,然后转成结构体,可行
recv(serConn,buff, sizeof(buff), NULL);
te = *(Test*)buff;
printf("ip=%s,name=%s\n", te.ip,te.name);
发送:
Test cp;