当前位置: 代码迷 >> VC >> [急]至于 MFC 中 SOCKET 数据传输 数据不一致
  详细解决方案

[急]至于 MFC 中 SOCKET 数据传输 数据不一致

热度:1315   发布时间:2013-02-25 00:00:00.0
[急]关于 MFC 中 SOCKET 数据传输 数据不一致
这个急死了,想了好几天都没想明白, 希望各位前辈能指出问题所以

C/C++ code
//以下为封装 传输数据的 结构体struct TDataS{    int type;    int playerOrder;    int param1;};//生成一个数据TDataS tds;tds.type=1;tds.param1=icard;TDataS* ptds;ptds=&tds;//发送数据SendTranfer(ptds);   //其中函数SendTranfer的代码为   SendTranfer(TDataS* tds)   {       int iSend=m_socket.SendTo(tds,sizeof(&tds),       clientPort,clientIP,0);   }//此部分接收数据TDataS* tReceiveData;TDataS tempTds;tReceiveData=&tempTds;ReceiveTranfer(){   int iRecv=m_socket.ReceiveFrom(tReceiveData,sizeof(&tReceiveData),clientIP,clientPort,0);}


出现的问题是, 发送的数据 和 接收到的数据不一样.

例如 发送的数据是
C/C++ code
TDataS tds;tds.type=1;tds.param1=5;TDataS* ptds;ptds=&tds;


接收到的数据是
C/C++ code
tReceiveData->type=1;tReceiveData->param1=1;



在发送和接收的数据结构体中, param1 参数的值 一个是 5 , 一个是 1 ,
正常 情况下应该是一样的才对.

我实在找不到问题在哪里,
希望各位前辈可以告诉我


我一共只有这么多积分了,不好意思

------解决方案--------------------------------------------------------
sizeof(&tReceiveData),指针的指针?有问题吧。
------解决方案--------------------------------------------------------
你把
C/C++ code
int iRecv=m_socket.ReceiveFrom(tReceiveData,sizeof(&tReceiveData),clientIP,clientPort,0);
------解决方案--------------------------------------------------------
还有你发送的时候
C/C++ code
int iSend=m_socket.SendTo(tds,sizeof(&tds),
------解决方案--------------------------------------------------------
你只发送了4个字节
  相关解决方案