各位兄弟,帮忙看下面代码,如何有误?(使用UDP)
一、UPD-Server端,接收与发送数据:
procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
type
TMy=record
A:word;
b:Word;
C:word;
end;
var
St,Re:Tmy;
begin AData.WriteBuffer(St,Sizeof(St));
UdpMemo.Lines.Add(IntToStr(St.A));
UdpMemo.Lines.Add(IntToStr(St.B));
UdpMemo.Lines.Add(IntToStr(St.C));
UdpMemo.Lines.Add('-------------');
Re.A:=99;
Re.b:=98;
Re.C:=97; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, Re, Sizeof(Re));
end;
二、UDP-CLIENT端,发送与接收数据:
procedure TUDPMainForm.SendButtonClick(Sender: TObject);
type
TMy=record
A:word;
b:Word;
C:word;
end;
var
St,Re:Tmy;
begin
st.A:=96;
st.b:=95;
St.C:=94;
UDPCLient.SendBuffer(St,Sizeof(St)); UDPClient.ReceiveBuffer(Re,Sizeof(Re)); UDPMemo.Lines.Add(IntTOStr(Re.A));
UDPMemo.Lines.Add(IntTOStr(Re.B));
UDPMemo.Lines.Add(IntTOStr(Re.C));
UDPMemo.Lines.Add('-------------');
end;
三、错误现象:
客户端接收到数据正常,但服务端接收数据错误?如果我发送与接收字符串都很正常。
一、UPD-Server端,接收与发送数据:
procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
type
TMy=record
A:word;
b:Word;
C:word;
end;
var
St,Re:Tmy;
begin AData.WriteBuffer(St,Sizeof(St));
UdpMemo.Lines.Add(IntToStr(St.A));
UdpMemo.Lines.Add(IntToStr(St.B));
UdpMemo.Lines.Add(IntToStr(St.C));
UdpMemo.Lines.Add('-------------');
Re.A:=99;
Re.b:=98;
Re.C:=97; ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, Re, Sizeof(Re));
end;
二、UDP-CLIENT端,发送与接收数据:
procedure TUDPMainForm.SendButtonClick(Sender: TObject);
type
TMy=record
A:word;
b:Word;
C:word;
end;
var
St,Re:Tmy;
begin
st.A:=96;
st.b:=95;
St.C:=94;
UDPCLient.SendBuffer(St,Sizeof(St)); UDPClient.ReceiveBuffer(Re,Sizeof(Re)); UDPMemo.Lines.Add(IntTOStr(Re.A));
UDPMemo.Lines.Add(IntTOStr(Re.B));
UDPMemo.Lines.Add(IntTOStr(Re.C));
UDPMemo.Lines.Add('-------------');
end;
三、错误现象:
客户端接收到数据正常,但服务端接收数据错误?如果我发送与接收字符串都很正常。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货