Socket中结构体数据的传输
我服务端和客服端是这样在类外定义的
typedef struct Data
{
//int order;
CString filedata[4][100];
}DataPacket;
服务端:
int sended;
for (int j=0;j<5;j++)
{
MessageBox(ThreadData.filedata[0][j]);
}
for(int i=1;i<=csnum;i++) if(csrev[i])
if( sended=csrev[i].Send((char*)&ThreadData,sizeof(ThreadData),0))
{
CEdit *ce=((CEdit*)GetDlgItem(IDC_EDIT_CONTENT));
ce->LineScroll(ce->GetLineCount()-1);;
MessageBox("数据发送成功");
}
每次调试出sended都是1600,就是说已经发送过去了。
客服端:
clconect.Receive((char*)&ServerData,sizeof(ServerData),0);
int len=sizeof(ServerData);
每次单步调试收到的len也为1600.表示也收到了数据,为什么在后面这两句就错了,就要死,是我哪里错了吗,请大家帮我看看,我纠结了好久啊……
CString str=ServerData.filedata[0][1];
MessageBox(str);
其中在服务端类中定义有:Data ThreadData;
客服端类中定义有:Data ServerData;