2012-03-29 22 views
2

私は先月、マルチプレイヤーゲームを作成しました。 IPEndPointとして127.0.01:9051を使用して、1台のマシンでのみテストしています。インターネットIPアドレスを使用してローカルマシンのIPアドレスに接続できません

IPアドレスを自分のWAN IPに変更し、ルータでポート転送を設定し、ソフトウェアファイアウォールを設定しました...しかし、接続しません。

this siteを使用してポートが開いているかどうかを確認しました。結果:ポートは実際に開いています。

また、私がそのウェブサイトからポートをチェックすると、私のサーバはパケットをうまく受信します。しかし、自分のマシンから接続すると、何も受信されません。

私はコードに問題がないことを確認するために基本まですべてを壊しました。

この基本的なコードは動作しません:

IPEndPoint iep = new IPEndPoint(IPAddress.Parse("XXX.XXX.XXX.XXX"), 9051); 
TcpClient client = new TcpClient(); 
client.Connect(iep); 

任意のアイデアがはるかに高く評価されています。

答えて

3

転送されたIP(IP外)のIPを同じマシン(IP内)に接続しようとすると、動作しません。非常に少数の企業のファイアウォールなしコンシューマデバイスは、(私の知っている)があり、そのルート裏返しからのパケットになり、後ろにそれを翻訳

[インターネット] - 。outsideIP [ルーター/ファイアウォール] insideIP1 - insideIP2 [コンピュータ]

この場合、insideIP(X)からのパケットは、outsideIPに接続することができません。

+0

基本的に私は127.0.0.1を使用して接続する自分のために別のクライアントを作成する必要がありますか? –

+0

@Jeff - エンドポイントアドレスを設定ファイルに入れることができます。 –

+0

@Jeffはい、1台以上のコンピュータで2つのアプリケーションを実行する必要があります。 –

0

wan IPにポート9051でtelnetできるかどうか試してみてください。ルータは、ネットワーク自体からwan IPに接続しているときには、本当に気に入らないのです。

+0

それは自分自身にpingすることはできません=) –

+0

PingもTCPではありません。 PingはICMPです(ポートの概念はありません)。 –

+0

k今はTelnetが有効になっていません。別のマシンから接続して、動作しているかどうか試してみます。すべてのあなたの助けに感謝 –

0

外部にDyndnsなどのサービスを使用して、サーバーに接続し、127.0.0.1に解決されるホストファイルに内部的に接続できるように同じ名前を付けることができます。

+0

提案のおかげで –

0

同じエンドポイントip/portを使用しているクライアントとサーバー(両方とも失敗したテストで同じマシン)ですか?ポートは一度に1つしかバインドできません。サーバーアウト用に2つのポート1つを使用してみてください。そうすれば彼らは衝突しないでしょう。 Telnetを使用して、使用しているIP /ポートに接続できることを確認し、Netstatを使用してそれらがまだ使用されていないことを確認します。

関連する問題