无法使用StreamSocket建立连接(通用窗口)

时间:2015-11-24 13:30:45

标签: c# .net windows-store-apps windows-10 win-universal-app

我试图关注微软的this code sample,这是从Windows 10计算机/手机通过网络发送/接收数据的基本代码。 我在VS2015上,我在W10和我的电脑上都有一部手机。

问题是我的应用程序似乎创建数据包并发送一个来建立连接(我已经看到这个数据包与wireshark),但我从来没有在服务器端收到它。

以下是从可用的实际互联网连接侦听端口并等待连接的代码:

    public static async void StartServer()
    {
        try
        {
            StreamSocketListener listener = new StreamSocketListener();

            //ConnectionProfile internetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();
            //await listener.BindServiceNameAsync("5043", SocketProtectionLevel.PlainSocket, internetConnectionProfile.NetworkAdapter);

            listener.ConnectionReceived += OnConnection;
            await listener.BindServiceNameAsync("5043");

            Debug.WriteLine("Server Started !");
        }
        catch (Exception)
        {
            Debug.WriteLine("Error StartServer Method !");
        }
    }

方法" OnConnection"永远不会到达导致事件" ConnectionReceived"永远不会被称为。

这是建立连接的代码(字符串ipDestination包含来自我的手机的互联网IP地址,例如,我从checkip.dyndns.org获得):

    private static StreamSocket socket;

    public static async void Connect(string ipDestination)
    {
        try
        {
            //Destination Ip address 
            HostName host = new HostName(ipDestination);
            ConnectionProfile internetConnectionProfile = NetworkInformation.GetInternetConnectionProfile();

            socket = new StreamSocket();
            socket.Control.KeepAlive = true;

            await socket.ConnectAsync(host, "5043");
            //EXCEPTION RAISE HERE after a moment "System.Runtime.InteropServices.COMException, cant join destination.

            Debug.WriteLine("Connected !");
        }
        catch (Exception)
        {
            Debug.WriteLine("Erreur Connect Method !");
        }
    }

我想我应该错过一些东西,但我不知道为什么而且我阻止了这个部分,因为很长时间而且不能继续我的项目...... 我为糟糕的英语道歉,我尽力做到最好:)

评论更新:

  • 正如Jay Zuo所说,我试图在私人网站上使用本地地址 网络和它的工作原理,我可以建立连接,发送和接收 没有问题的数据......所以当我使用互联网IP时问题就出现了 地址,我仍然无法理解为什么......
  • 正如Kiewic建议的那样,我已经简化了我的代码并对其进行了评论 先例版本。

0 个答案:

没有答案