1

クライアント/サーバー アプリケーションを実行しています。テキスト ボックスを使用して、ユーザーが IP アドレスとポートを入力できるようにします。127.0.0.1 を使用してサーバーに接続しようとしましたが、問題はありません。その後、192.168.2.102 (このコンピュータの NAT IP アドレス) を使用しようとしましたが、失敗しました。理由はありますか?

私が使用しているコードは次のとおりです:(これは接続する部分です)

connect(string IPaddress, int port)
{
    TcpCLient connection = new TcpClient();
    connection.Connect(IPaddress, port);
}

デバッグで確認しましたが、正しい IP アドレスとポートを使用しています。ファイアウォールは、接続を許可する必要があります。それは奇妙だ。

編集: 私は問題を知っていると思います。サーバー側では、使用します

_listener = new TcpListener(IPAddress.Loopback, 8001);

そして、それが 127.0.0.1 からの接続のみを受け入れる理由だと思います。しかし、代わりに何を使用すればよいですか?このポートを使用して、任意の IP から任意の接続が必要です。

4

2 に答える 2

3

IPAddress.Loopbackを指定している場合、127.0.0.1への接続のみが機能します。これをIPAddress.Anyに置き換えて、サーバーにすべてのインターフェイスでリッスンするように指示します。

于 2009-07-01T14:57:02.100 に答える
0

まず第一に、私がこれまでに見た唯一の状況はConnection was not possible because the destination computer actively rejected it、指定されたアドレスとポートで接続をリッスンするものが実際に何もない場合です...またはファイアウォールがあります。

tracertあると思われる場所を192.168.2.102実際に指している で確認することをお勧めします。もう 1 つのオプションはtelnet、コードに問題があると本当に疑われる場合に、コマンド ラインから使用してアドレスとポートに接続することです (ただし、ここでは当てはまりません)。

補遺:
同じマシン上の特定の IP アドレスに正常に接続できる他のアプリケーションはありますか?

于 2009-07-01T14:45:15.260 に答える