【问题标题】:Cannot send data over UDP in UWP无法在 UWP 中通过 UDP 发送数据
【发布时间】:2019-02-11 23:02:11
【问题描述】:

我正在尝试在 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 应用程序。

【问题讨论】:

  • 请考虑使用 UTF8 而不是 ASCII 作为您的编码...您未来的自己会感谢您。
  • 嗨彼得,感谢您的意见。我是开发 Windows 应用程序的新手,我的教育背景不是 CS。您能否详细说明为什么 UTF8 比 ASCII 更好?我很想知道。
  • 基本上,ASCII 只编码世界上一小部分语言。您将无法用 ASCII 表示(例如)中文或韩文,也无法支持表情符号等。检查 Wikipedia 的 UTF8 条目
  • 谢谢彼得!欣赏输入。 :)

标签: c# uwp udp


【解决方案1】:

This page 解释了如果未配置 App 功能,上述代码将无法运行的原因。

在问这个问题之前我没有配置功能。但是,我遇到了the page,并启用了一些功能(Internet(客户端和服务器)、Internet(客户端)、专用网络(客户端和服务器))。

配置它们后,我之前的代码运行良好。

如果您遇到同样的问题,请转到 Package.appxmanifest -> Capabilities 配置功能,然后重新构建解决方案。正确启用功能后,您的应用应发送数据。 :) :)

【讨论】:

    【解决方案2】:

    您可以使用下面我编写的代码并测试它,它可以正常工作

            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"
    

    【讨论】:

    • 您好 Mert Akkanat,谢谢您的意见。我遇到了link,它要求我们在 Package.appxmanifest 文件中声明设备的功能,这是我以前没有做过的。因此,应用程序没有发送任何数据。我现在声明了这些功能,现在一切似乎都正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多