Delphi indy远程主机UDP客户端/服务器

时间:2012-03-28 10:49:21

标签: delphi udp client-server indy

是否可以使用indy客户端连接到远程主机并将数据发送到本地服务器 我尝试这样的事情,但我没有收到任何东西:

  Server:=TIdUDPServer.Create;
  Server.OnUDPException:=UDPException;
  Server.OnUDPRead:=UDPRead;
  Server.Bindings.Add.Port:=10;
  Server.Active:=true;
  //Server is listening to local IP

  Client:=TIdUDPClient.Create;
  with Client do begin
    Host:= '130.204.159.205'; //My IP
    Port:=10;
    Send('Hello');
  end;

我的目标是创建将通过互联网与UDP通信的客户端/服务器应用程序

2 个答案:

答案 0 :(得分:2)

UDP是无连接传输。它不能保证像TCP那样提供数据,尤其是在像Internet这样的大型网络上。如果TIdUDPServer没有收到数据,那么要么数据包没有到达机器,要么在TIdDUPServer可以看到它们之前被阻止。使用数据包嗅探器(如Wireshark)来验证数据包是否到达TIdUDPServer正在侦听的NIC。如果不是,那么您就遇到了网络问题。如果是,那么就会出现操作系统问题。

答案 1 :(得分:0)

是的,这是可能的。让我们绕过一些问题,然后尝试一下:

Host := '127.0.0.1'

如果这不起作用,请检查您的Windows防火墙是否允许您的测试应用程序连接到自身。 (关闭基于本地软件的防火墙并再次尝试。)