C# 在控制台应用程序中运行的代码,但不在windows universal app中运行

C# 在控制台应用程序中运行的代码,但不在windows universal app中运行,c#,visual-studio,sockets,console-application,win-universal-app,C#,Visual Studio,Sockets,Console Application,Win Universal App,我在控制台应用程序中有以下代码: using System.Text; using System.Diagnostics; using System.Net.Sockets; using System.Net; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { byte[] data = ASCIIEncodi

我在控制台应用程序中有以下代码:

using System.Text;
using System.Diagnostics;
using System.Net.Sockets;
using System.Net;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] data = ASCIIEncoding.ASCII.GetBytes("test message");
            string IP = "192.168.1.22";
            int Port = 2390;
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
            socketEventArg.RemoteEndPoint = endPoint;
            socketEventArg.SetBuffer(data, 0, data.Length);
            client.SendToAsync(socketEventArg);
            Debug.WriteLine("sent");
        }
    }
}
Windows通用应用程序中的以下代码:

using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using System.Net;
using System.Net.Sockets;
using System.Diagnostics;
using System.Text;

namespace App6
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            byte[] data = ASCIIEncoding.ASCII.GetBytes("test message");
            string IP = "192.168.1.22";
            int Port = 2390;
            IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse(IP), Port);
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
            socketEventArg.RemoteEndPoint = endPoint;
            socketEventArg.SetBuffer(data, 0, data.Length);
            client.SendToAsync(socketEventArg);
            Debug.WriteLine("sent");
        }
    }
}
正如你所看到的,两者的内容几乎相同

  • 我设置发送到的IP是一个我在另一台计算机上运行的程序,我已经确认它可以正常工作。当我运行控制台应用程序时,它会在另一台计算机上的程序上正确显示我发送的数据,并且控制台应用程序会在调试控制台上打印出“sent”。通用Windows应用程序同样打印出“已发送”,但数据包永远不会到达另一台计算机

  • 我使用WireShark(一种网络分析/数据包嗅探工具)进行了检查,发现当我使用console应用程序时,会发送UDP数据包,但当我使用Universal Windows应用程序时,没有发现UDP数据包

  • 我在调试模式下运行Visual Studio 2015中的两个程序,我想不出它为什么不工作


任何建议或想法都会有帮助

只是猜测-您是否已将internetClient功能添加到您的应用程序中

可能是重复的,非常感谢!我不敢相信我不知道功能,我想我对UWPs还是相当陌生的。