0

デスクトップのサーバーアプリに接続するモバイルデバイス上のアプリがあります。デスクトップではTcpListenerを使用し、モバイルではTcpClientを使用しています。Windows 8のサポートを追加しようとしましたが、Microsoftがそれを削除したようです。現在、TcpClientとしてStreamSocketを使用し、TcpListenerとしてStreamSocketListenerを使用する必要があります。コードを変更しようとしましたが、TcpListenerに接続していません。(デスクトップでも非同期を使用したことに注意してください)。

デスクトップのTcpListener:

server = new TcpListener(Constants.DEFAULT_PORT);

server.Start();

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

私のWindows8のStreamSocket:

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

デスクトップ上のOnAcceptが呼び出されないため、接続されずにConnectAsync回線を通過します。

だから私はここで何が悪いのかわかりません。

4

1 に答える 1

2

既定では、Windows ランタイム (ストア) アプリはネットワークを使用して localhost に接続できません。このWebページでそれについて説明しています: http://msdn.microsoft.com/en-us/library/windows/apps/Hh780593.aspx

上記の手順を使用してローカルホスト通信を機能させることができなかったため、代わりにローカルネットワークにリスナーをセットアップすることを選択しました. ローカル ネットワーク アクセスも既定でオフになっていることに注意してください。Windows ランタイム アプリのアプリケーション マニフェストを介して有効にする必要があります。

于 2012-11-16T04:17:30.370 に答える