Indy10中如何把一个结构体数据用IdTCPClient发给IdTCPServer
Indy10中怎么把一个结构体数据用IdTCPClient发给IdTCPServer?C/C++ codestruct TMyData{ int CMD AnsiStr
Indy10中怎么把一个结构体数据用IdTCPClient发给IdTCPServer?
C/C++ codestruct TMyData{ int CMD; AnsiString MD5; bool HavingStream; int StreamSize;};TMyData *Data=new TMyData[1];Data->CMD=1;Data->MD5="202CB962AC59075B964B07152D234B70";Data->HavingStream=true;Data->StreamSize=1024524;
怎么把这个结构体发给服务端?服务端接收到后又怎么还原呢?
[解决办法]直接writebuffer(Data, sizeof(Data));
http://topic.csdn.net/u/20090301/20/c6c8bdb3-527c-4b59-b847-ac00fbf3f065.html
[解决办法]通过Stream中转,用Write方法发送。接收时用ReadStream
另外,结构体中,最好用字符数组,如:
struct TMyData
{
int CMD;
TCHAR MD5[33];
bool HavingStream;
int StreamSize;
};
[解决办法][解决办法]因为发送的都是以字节开势出去的,到网络上都是二进制的,
char buffer[1024]={0};
TMyData aa;
memcpy(buffer,&aa,sizeof(aa));
然后把buffer发出去
服务器端接收后数据先存放在buf里,
然后TMyData bb;
memcpy(&bb,buf,sizeof(bb));
这样就还原了