是否可以使用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通信的客户端/服务器应用程序
答案 0 :(得分:2)
UDP是无连接传输。它不能保证像TCP那样提供数据,尤其是在像Internet这样的大型网络上。如果TIdUDPServer
没有收到数据,那么要么数据包没有到达机器,要么在TIdDUPServer
可以看到它们之前被阻止。使用数据包嗅探器(如Wireshark)来验证数据包是否到达TIdUDPServer
正在侦听的NIC。如果不是,那么您就遇到了网络问题。如果是,那么就会出现操作系统问题。
答案 1 :(得分:0)
是的,这是可能的。让我们绕过一些问题,然后尝试一下:
Host := '127.0.0.1'
如果这不起作用,请检查您的Windows防火墙是否允许您的测试应用程序连接到自身。 (关闭基于本地软件的防火墙并再次尝试。)