0

我在移动设备上有一个应用程序,它连接到我在桌面上的服务器应用程序我在桌面上使用 TcpListener,在移动设备上使用 TcpClient。我试图添加对 Windows 8 的支持,但似乎微软删除了它,现在我们应该使用 StreamSocket 作为 TcpClient 和 StreamSocketListener 作为 TcpListener。我试图更改我的代码,但它甚至没有连接到我的 TcpListener。(请注意,我也在桌面上使用了异步)。

我桌面上的 TcpListener:

server = new TcpListener(Constants.DEFAULT_PORT);

server.Start();

server.BeginAcceptSocket(new AsyncCallback(OnAccept), null);

我的 Windows 8 上的 StreamSocket:

var client = new StreamSocket();
await client.ConnectAsync(new EndpointPair(new HostName("localhost"), "7800", new HostName("localhost"), "7800"));

它通过 ConnectAsync 线而没有连接,因为我在桌面上的 OnAccept 没有被调用。

所以我不知道这里有什么问题。

4

1 回答 1

2

默认情况下,Windows 运行时(应用商店)应用无法使用网络连接到 localhost。这个网页谈论它:http: //msdn.microsoft.com/en-us/library/windows/apps/Hh780593.aspx

使用上述说明,我从未能够使本地主机通信正常工作,而是选择在我的本地网络上设置一个侦听器。请注意,即使本地网络访问默认情况下也会关闭 - 您必须通过 Windows 运行时应用程序的应用程序清单启用它。

于 2012-11-16T04:17:30.370 回答