クライアント同士を直接接続し、接続を維持することが不可欠なアプリケーションを作成しています。優れた技術 (Google) を使用していくつかの調査を行った後、NAT-Punching または NAT-Traversal を実行することで、必要なものを達成できることがわかりました。
ほとんどの人は UDP 経由で NAT-Punching を使用しているようですが、私の場合は TCP でこれを行う必要があり (これは事実です。誰かが「なぜ UDP ではないのですか?」と尋ねる前に)、サンプル コードが見つかりませんでした。これまたは少なくとも適切なチュートリアル。理論的な付属品がどこにあるかを見つけることができましたが、Sockets または TCPClients では何も見つかりませんでした (私はソケットの方が好きです)。
NAT の背後にある 2 つのクライアントを接続できるサンプル コードをリンクしてもらえますか、またはサンプル コードを使用した完全なチュートリアルにリンクしてもらえますか? この目標を .NET で実行するのは難しいことはわかっています (私は VB.NET を使用していますが、C# も読んで理解することができます) が、可能であるはずです。
UPnP はオプションではありません。これは、セキュリティ上の理由により一部の NAT が無効になっているためです。