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通过互联网沟通

+1

它是控制台还是VCL应用程序?有关控制台应用程序,请参阅http://*.com/questions/7647112/how-can-i-use-tidudpserver-in-a-console-application – mjn 2012-03-28 11:20:57

+2

不要忘记防火墙和/或反**病毒** – ComputerSaysNo 2012-03-28 11:27:55

+0

它不是控制台应用程序。 – TreantBG 2012-03-28 15:12:41

UDP是无连接传输。它不保证像TCP一样传输数据,特别是在像互联网这样的大型网络上。如果TIdUDPServer未接收到数据,则数据包不会到达机器开始处,或者在TIdDUPServer可以看到它们之前被阻止。使用数据包嗅探器(如Wireshark)来验证数据包是否到达TIdUDPServer正在侦听的NIC。如果他们不是,那么你有一个网络问题。如果他们是,那么你有一个操作系统的问题。

是的,它是可能的客户端/服务器应用程序。让我们绕过了一些问题,并尝试这个:

Host := '127.0.0.1' 

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

+0

老兄,UDPServer没有这样的变量主机。有IP:='127.0.0.1' 但它同样我没有收到文字 – TreantBG 2012-03-28 19:00:19

+0

老兄,我不是在说主机,我在说客户。我建议验证你的IP地址。而不是使用您的公共地址,而是尝试使用您的本地主机地址,而不是(127.0.0.1) – 2012-03-28 19:23:19

+0

我不想运行此程序只为我的本地网络 我希望我的客户端/服务器应用程序通过互联网连接远程主机 – TreantBG 2012-03-28 19:29:08