无法调试UDPclient客户端接收

本文关键字:客户端 端接 客户 UDPclient 调试 | 更新日期: 2023-09-27 18:07:02

我想使用下面的端口从下面的IP地址接收数据包。问题在"client "之后。收到(ref localEp);这一行代码不能运行,也无法调试。

UdpClient client = new UdpClient();
IPEndPoint localEp = new IPEndPoint(IPAddress.Any, 17000);
client.Client.Bind(localEp);
IPAddress multicastaddress = IPAddress.Parse("224.0.0.10");
client.JoinMulticastGroup(multicastaddress);
while (true)
{
     Byte[] data = client.Receive(ref localEp);
     string strData = Encoding.UTF8.GetString(data);
     Console.WriteLine(strData);
}

我也得到这个异常ScopeId = 'localEp.Address。ScopeId'抛出了'System.Net.Sockets '类型的异常。SocketException' in IPEndPoint localEp。请帮忙更正我的代码

UPDATE解决方案是,在我的机器上安装了HYPER-V虚拟机设置,这限制了udp数据的接收。我只是关闭了它,开始接收数据。老实说,我对它的行为一点也不了解。

无法调试UDPclient客户端接收

首先尝试msdn方式从本地主机接收数据,然后从其他主机名接收数据:

https://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient (v = vs.110) . aspx

// This constructor arbitrarily assigns the local port number.
    UdpClient udpClient = new UdpClient(17000);
    udpClient.Connect("127.0.0.1", 17000);
    // Sends a message to the host to which you have connected.
    Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
    udpClient.Send(sendBytes, sendBytes.Length);
    //// Sends a message to a different host using optional hostname and port parameters.
    //UdpClient udpClientB = new UdpClient();
    //udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 17000);
    //IPEndPoint object will allow us to read datagrams sent from any source.
    IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
    // Blocks until a message returns on this socket from a remote host.
    Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint);
    string returnData = Encoding.ASCII.GetString(receiveBytes);