无法在 UWP 中通过 UDP 发送数据
Cannot send data over UDP in UWP
我正在尝试在 UWP 应用程序中通过 UDP 发送数据。但是,我在 Wireshark 上看不到正在发送的数据。
只是为了检查防火墙是否导致任何问题,我将其禁用并尝试再次发送数据。但是,我仍然没有看到 Wireshark 上的数据。这是我的代码:
UdpClient client = new UdpClient();
client.EnableBroadcast = true;
client.Connect(IPAddress.Broadcast, 9520);
Byte[] senddata = Encoding.ASCII.GetBytes("Hello!");
client.Send(senddata, senddata.Length);
client.Close();
我是不是遗漏了什么明显的东西?我正在使用 Visual Studio 2017 构建此 UWP 应用程序。
你可以使用下面的代码,我编写并测试它,它工作正常
byte[] package= Encoding.ASCII.GetBytes(udpInfo[2].ToString());
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(udpInfo[0].ToString()), Convert.ToInt32(udpInfo[1]));
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
try
{
sock.SendTo(package, ep); //send packet to sw ip
Console.WriteLine("package sent");
return true;
}
catch (Exception ex)
{
Console.WriteLine("package can't sent");
return false;
}
编辑:udpInfo arraylist 声明如下:
public ArrayList udpInfo = new ArrayList(); // 0-ip 1-port 2-command
udpInfo[0] = "192.168.1.1"
udpInfo[1] = 1111
udpInfo[2] = "some commands"
This page 解释了如果未配置应用程序功能,上述代码将无法运行的原因。
问这个问题之前我没有配置能力。但是,我遇到了 the page 并启用了一些功能(互联网(客户端和服务器)、互联网(客户端)、专用网络(客户端和服务器))。
配置它们后,我之前的代码工作正常。
如果您遇到同样的问题,请转到 Package.appxmanifest -> 功能配置功能,然后重建解决方案。正确启用功能后,您的应用程序应发送数据。 :) :)
我正在尝试在 UWP 应用程序中通过 UDP 发送数据。但是,我在 Wireshark 上看不到正在发送的数据。
只是为了检查防火墙是否导致任何问题,我将其禁用并尝试再次发送数据。但是,我仍然没有看到 Wireshark 上的数据。这是我的代码:
UdpClient client = new UdpClient();
client.EnableBroadcast = true;
client.Connect(IPAddress.Broadcast, 9520);
Byte[] senddata = Encoding.ASCII.GetBytes("Hello!");
client.Send(senddata, senddata.Length);
client.Close();
我是不是遗漏了什么明显的东西?我正在使用 Visual Studio 2017 构建此 UWP 应用程序。
你可以使用下面的代码,我编写并测试它,它工作正常
byte[] package= Encoding.ASCII.GetBytes(udpInfo[2].ToString());
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(udpInfo[0].ToString()), Convert.ToInt32(udpInfo[1]));
Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
try
{
sock.SendTo(package, ep); //send packet to sw ip
Console.WriteLine("package sent");
return true;
}
catch (Exception ex)
{
Console.WriteLine("package can't sent");
return false;
}
编辑:udpInfo arraylist 声明如下:
public ArrayList udpInfo = new ArrayList(); // 0-ip 1-port 2-command
udpInfo[0] = "192.168.1.1"
udpInfo[1] = 1111
udpInfo[2] = "some commands"
This page 解释了如果未配置应用程序功能,上述代码将无法运行的原因。
问这个问题之前我没有配置能力。但是,我遇到了 the page 并启用了一些功能(互联网(客户端和服务器)、互联网(客户端)、专用网络(客户端和服务器))。
配置它们后,我之前的代码工作正常。
如果您遇到同样的问题,请转到 Package.appxmanifest -> 功能配置功能,然后重建解决方案。正确启用功能后,您的应用程序应发送数据。 :) :)