熟悉ReceiveBuf的快来帮忙
我现在写一个Socket通讯,遇到问题,服务端不能正确接收客户端发来的TagA结构,TagA结构定义如下:
struct TagA
{
int Cmd;
int Count;
};
哪位能帮我指出问题所在,万分感激。
服务端:
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo2->Lines->Add (Socket->ReceiveText ());
int Len = Socket->ReceiveLength ();
Memo2->Lines->Add ("结构长度 = "+IntToStr(Len));
struct TagA A;
A.Cmd = 0;
A.Count = 0;
Socket->ReceiveBuf (&A, Len);
Memo2->Lines->Add (A.Cmd );
Memo2->Lines->Add (A.Count );
}
//---------------------------------------------------------------------------
客户端:
void __fastcall TForm2::Button3Click(TObject *Sender)
{
struct TagA A;
A.Cmd = 10;
A.Count = 2;
int Len = ClientSocket1->Socket->SendBuf (&A,sizeof(A));
Memo2->Lines->Add ("发送结构长度 = "+IntToStr(Len));
}
//---------------------------------------------------------------------------
运行后:
当客户端点击Button3后,Len的值为8。而服务端ReceiveLength 却为0。why? :(