我试图关注微软的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 !");
}
}
我想我应该错过一些东西,但我不知道为什么而且我阻止了这个部分,因为很长时间而且不能继续我的项目...... 我为糟糕的英语道歉,我尽力做到最好:)
评论更新: