mfc UDP通信中,发送的缓存是一个结构体,结构体里面有个成员变量时指针(动态数组),但是接收不到数组 比如我发送了一个结构图:
{
int num;
int *value;} value动态开辟内存, value =new int[num] ,并且数组都赋值了发送出去了,接收了到num的值,但是value没有怎么回事?? UDP通信
{
int num;
int *value;} value动态开辟内存, value =new int[num] ,并且数组都赋值了发送出去了,接收了到num的值,但是value没有怎么回事?? UDP通信
http://download.csdn.net/detail/geoff08zhang/4571358
int num;
int *value;} 这个结构体大小才8个字节,直接发送结构体是不行的发送value, 指定发送长度是num
或者这样写:
char szSend[4096] = {0}, *p = szSend;
*(int*)p = s.num;
p += sizeof(int);
memcpy(p, s.value, s.num);
send(szSend, 4+s.num);收到之后可这样解析
char szRecv[4096] = {0}, *p = szRecv;
recv(szRecv, ...)
s.num = *(int*)p;
p += 4;
s.value = new int[s.num];
memcpy(s.value, p, s.num);