2009-07-01 9 views
1

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

私が使用していたコードは次のようになります(この接続している部分)

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からの任意の接続が欲しいです。

+1

おそらく、失敗の詳細情報を含める必要があります...どのような例外がありますか?何が起こるのですか? – jerryjvl

+0

"192.168.2.102:8001宛先コンピュータが積極的に拒否したため接続できませんでした"。 – Nefzen

+0

指定されたポートが使用されていませんか? 192 *アドレスと同じ接続を試みて、システムがあなたのためにポートを選択できるようにしてください。別の結果が得られるかどうかを確認してください。 – LBushkin

答えて

3

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

+0

を読んでくださいはい、ちょうどそれを見ました。ありがとう – Nefzen

0

まず、私が今までに見たことのある唯一の状況は、指定されたアドレスとポートで実際に接続をリッスンすることがない場合です...またはファイアウォールがあります。

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

補遺:
成功し、同じマシン上の特定のIPアドレスへの接続を行うことができ、他のアプリケーションはありますか?

関連する問題