无法调试 UDPclient 客户端接收
Unable to debug UDPclient client receive
我想使用以下端口从以下 IP 地址接收数据包。问题出在"client.Receive(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' 在 IPEndPoint localEp 中抛出了类型 'System.Net.Sockets.SocketException' 的异常。请帮助更正我的代码
UPDATE 解决办法是,在我的机器上安装了HYPER-V虚拟机设置,限制了这个udp数据的接收。我只是禁用它并开始接收数据。老实说,我不知道它的行为。
首先尝试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);
我想使用以下端口从以下 IP 地址接收数据包。问题出在"client.Receive(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' 在 IPEndPoint localEp 中抛出了类型 'System.Net.Sockets.SocketException' 的异常。请帮助更正我的代码
UPDATE 解决办法是,在我的机器上安装了HYPER-V虚拟机设置,限制了这个udp数据的接收。我只是禁用它并开始接收数据。老实说,我不知道它的行为。
首先尝试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);