在做wm5.0和pc之间的socket通讯时,要注意的是:send和recv函数里要发送的自定义结构体数据时不能以指针形式发送和接受,必须是实体,并且结构体里的组员要求是char类型的不能是Tchar类型,否则接受的数据有问题。本来我是想传送一个结构体并且组员都是TCHAR类型的数组,但接受时数据错误,改成char类型的就没问题,我认为是send和recv函数第2个参数必须是char ×的限制导致的问题,TCHAR和char的大小是不一样的。最后只能在接受到数据后在转换成TCHAR
如:typedef struct tagStruct1{ char a[20]; char b[20]; }test;
test test1;//不能声明成指针test *test1;
send(socketNum, ( char * )&test1, sizeof( test ), 0 );//recv形式也是如此
这样发送接受就不会有问题。
大家在使用socket编程时如有更好的方法传送结构体数据,请指教