首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求解UDP通信有关问题。Indy10中的TidUDPClient 与TidUDPServer 通信出错

2013-04-02 
求解UDP通信问题。Indy10中的TidUDPClient与TidUDPServer 通信出错在DELPHI EX2中,分别在两个应用中用了控

求解UDP通信问题。Indy10中的TidUDPClient 与TidUDPServer 通信出错
在DELPHI EX2中,分别在两个应用中用了控件TidUDPClient 与TidUDPServer来实现信息的收发。实现在的功能是TidClient发信息后就收。客户端代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
  GetBuff:TBytes;
  lsstr:string;
begin
  setlength(GetBuff,512);
  zeromemory(GetBuff,512);

  IdUDPClient1.Send('127.0.2.1',3030,'ewqefqwe312313');
  IdUDPClient1.ReceiveBuffer(GetBuff);
end;


服务端代码如下:
procedure TForm1.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread;
  AData: TArray<System.Byte>; ABinding: TIdSocketHandle);
var
  revbuff:array[0..99] of AnsiChar;
  lsMsg:AnsiString;

begin
 lsMsg:=  BytesToString(AData);
 Memo1.Lines.Add(lsMsg);

 IdUDPServer1.Send(ABinding.PeerIP,ABinding.PeerPort,lsMsg);

end;

如果服务端下客户端都开启。通信正常。但如果服务端关闭,客户端就会报错:socket Error #10054 请问高手们,怎样不让客户端出错。也就是说,因为出错了,那TidUDPClient就一定知道服务端没有正常接收信息,在发送之前,怎样判断服务端没有开启或网络不通,从而决定发与不发信息。
  delphi? socket indy TidUDPClient UDP通信
[解决办法]
无网络链接怎么发送?
你想过滤掉socket Error #10054 信息,用try...except...end拦截。

热点排行