Delphi indy远程主机UDP客户端/服务器
问题描述:
是否可以通过indy客户端连接到远程主机并将数据发送到本地服务器。
我尝试这样的事情,我不接受任何东西:Delphi indy远程主机UDP客户端/服务器
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通过互联网沟通
答
UDP是无连接传输。它不保证像TCP一样传输数据,特别是在像互联网这样的大型网络上。如果TIdUDPServer
未接收到数据,则数据包不会到达机器开始处,或者在TIdDUPServer
可以看到它们之前被阻止。使用数据包嗅探器(如Wireshark)来验证数据包是否到达TIdUDPServer
正在侦听的NIC。如果他们不是,那么你有一个网络问题。如果他们是,那么你有一个操作系统的问题。
答
是的,它是可能的客户端/服务器应用程序。让我们绕过了一些问题,并尝试这个:
Host := '127.0.0.1'
如果还是不行,请检查您的Windows防火墙允许您的测试应用程序连接到自身。 (关闭本地基于软件的防火墙并再次尝试。)
它是控制台还是VCL应用程序?有关控制台应用程序,请参阅http://*.com/questions/7647112/how-can-i-use-tidudpserver-in-a-console-application – mjn 2012-03-28 11:20:57
不要忘记防火墙和/或反**病毒** – ComputerSaysNo 2012-03-28 11:27:55
它不是控制台应用程序。 – TreantBG 2012-03-28 15:12:41