-1

ルーターIPからローカルIPへのポートフォワーディングをしたいのですがどうすればいいですか? C#では、ローカルIPを使用して受信するためのこのコードがあります

r.Bind(new IPEndPoint(IPAddress.Any, int.Parse(this.textBox2.Text)));
while (true)
            {
                br = new byte[16384];
                r.Receive(br);
                m_Fifo.Write(br, 0, br.Length);
            }

where br=buffer , textbox2 = local , ip r socket このスレッドでコードを使用しようとしましたが、接続できませんでしたC# Raw Sockets Port Forwarding

4

2 に答える 2

0

ポート転送は、ルーター構成内で処理されます。各ポート フォワーディング ルールは、ルーターの Web インターフェイス、telnet/SSH インターフェイス、またはルーターに付属のその他のソフトウェアを使用して、手動で設定する必要があります。

HTTP/Telnet/SSH 経由で接続し、必要なコマンドを渡してルールを作成しない限り、C# アプリケーションからルーターにポート転送を作成する一般的な方法はありません。これを行うことはお勧めしません。

また、一部のルーターは、これらの設定を変更したときに再起動する必要があり、ネットワーク/インターネット接続が完全に復元されるまで最大 5 分かかる場合があります。

いずれにせよ、その方法を見つけたとしても、C# アプリケーションからルーター構成をいじるのはおそらく非常に悪い考えです。

ポートを転送したい理由を明確にすることができますか?おそらく、代替ソリューションがあります。

于 2011-02-28T02:16:44.020 に答える
0

また、コードが間違っています。EOS の read() の結果を確認してブレークするか、結果を write 呼び出しに渡す必要があります。読み取りによってバッファーがいっぱいになったと想定することはできません。

もちろん、繰り返しごとに新しい byte[] バッファを割り当てるのは、非常に無駄です。

于 2011-02-28T02:22:44.497 に答える