0

現在コーディングしているアプリケーションでこの問題が発生しています。

Sockets .NET を使用してサーバーおよびクライアント アプリケーションをコーディングしています。サーバーは、静的 IP が 192.168.1.6 のマシンで実行されます。クライアントは、LAN 経由でその IP アドレスに問題なく接続できます。しかし、WAN IP に接続するようにクライアントをセットアップすると、接続できませんでした。

もちろん、すぐにポート フォワーディングを考えたので、アプリケーションとマシンの静的 IP に使用するポートで受信接続を受け入れるようにルーターを構成しました。portforward.com の PFPortChecker ツールを使用して、ポートが正しく転送されているかどうかも確認しましたが (実際はそうでした)、動作するようには見えません。

ここで見落としているものはありますか?私は文字通り最後の髪の毛を抜いているので、誰かが私を助けてくれることを本当に願っています...

編集:

わかりました。問題を .NET Socket の問題に絞り込みました。
基本的に、次のコード(C#)で接続しようとすると:

Socket _client;

_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_client.Connect("XX.XXX.XXX.X", XXXX);

LAN環境でしか接続できませんでした。しかし、自分のマシンでサーバーのインスタンスを実行していて、PFPortChecker ツールを使用して WAN IP とポートに ping を実行しようとすると、サーバーで実際に応答が返され、着信接続を新しいものとして処理し始めます。クライアント。

WAN経由で接続できるようにコードを修正する方法はありますか?

編集2:

わかりましたので、問題が何であるかを理解しました。自分の WAN IP から自分の WAN IP に接続できません。別のネットワークでは、サーバーへの接続に問題はありません。

とにかくお手数をおかけしてありがとうございます。

4

2 に答える 2

3

最初に、サーバーで Wireshark を実行して、着信接続が表示されているかどうかを確認することをお勧めします。これにより、ルーターがそのポートのトラフィックをマシンに転送しているかどうかが確認されます。

于 2012-08-24T00:01:36.487 に答える
0

192.168.1.6 は LAN サブネットです ... 外部 IP が異なります。ポートフォワーディングが問題ない場合は、おそらく問題です。Google「私のIPは何ですか」と外部IPアドレスを教えてくれるはずです

于 2012-08-24T00:04:52.010 に答える