だから、私はNAT-Punchthroughを読んでいます。アイデアは得られたようですが、実装するのに苦労しており、ここで一歩足りないと感じています。インターネットベースの接続に関しては、環境をほとんど制御できないため、この機能をテストするのはちょっと難しいです。
「ファシリテーター」として実行するSQLサーバーがあり、サーバーとクライアントの両方の外部アドレスと、外部から見たポートを保持します。
これまでの手順は次のとおりです: - サーバー/クライアント IP/ポートを格納する Web 要求 (PHP スクリプト) を介して SQL サーバーに接続します - 両方が既知の場合、クライアントとサーバーの両方が接続を試みます (設定されたポート上のサーバー ホスト、設定されたポートを介して接続します) - 重要なことは何も起こりません
ここで不明な点が 2 つありますが、1 点確認したいと思います。NAT パンチスルーでは、その後の手順で接続する予定の正確な (内部/LAN) ポートを使用して最初の手順を実行する必要があるというのは本当ですか?
もしそうなら、私のサーバーが水中でどのように機能するか正確にはわからないので、最初に与えられた静的ポートよりも多くのポートが必要になるかもしれませんが、少なくともヒントは得られます.
誰かがこれについて私よりも多くのドキュメントを持っている場合は、私に知らせてください。
出典:
P2P アプリケーションのプログラミング
http://www.mindcontrol.org/~hplus/nat-punch.html