Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Udp 自动发现ip地址_Udp_Ip Address_Udpclient_Discover - Fatal编程技术网

Udp 自动发现ip地址

Udp 自动发现ip地址,udp,ip-address,udpclient,discover,Udp,Ip Address,Udpclient,Discover,我有一个服务器和一个客户端,它们通过UDP套接字相互通信。服务器正在打开端口10002并侦听传入的数据报 为了让客户端获得服务器ip,它会发送一个广播数据报,服务器会对此作出响应。负责查找服务器ip地址的客户端代码如下所示: private IPEndPoint GetServerEP(TimeSpan timeout, UdpClient udpclient) { IPEndpoint server = new IPEndPoint(IPAddress.Broa

我有一个服务器和一个客户端,它们通过UDP套接字相互通信。服务器正在打开端口10002并侦听传入的数据报

为了让客户端获得服务器ip,它会发送一个广播数据报,服务器会对此作出响应。负责查找服务器ip地址的客户端代码如下所示:

    private IPEndPoint GetServerEP(TimeSpan timeout, UdpClient udpclient)
    {
        IPEndpoint server = new IPEndPoint(IPAddress.Broadcast, 10002);
        byte[] data = GetDiscoverDatagram();

        _udpclient.EnableBroadcast = true;
        udpclient.Send(data, data.Length, server);

        try
        {
            udpclient.Client.ReceiveTimeout = (int)timeout.TotalMilliseconds;
            udpclient.Receive(ref server);
        }
        catch (SocketException e)
        {
            string msg = string.Format("Server did not respond within {0} ms", timeout.TotalMilliseconds);
            throw new TimeoutException(msg, e);
        }

        return server;
    }
运行此命令后,我可以看到服务器实际接收广播数据报,并使用绑定到客户端发送的相同端口的数据包进行响应。但是,客户端没有收到任何消息和超时

我错过了什么?

愚蠢的我(或愚蠢的防火墙)。代码运行正常,但防火墙阻止了来自服务器的响应数据包。禁用后,一切都像一个符咒