LANだけでなく、C#でアプリクライアントサーバーを作成したい。簡単です: TcpListener、TcpClient など。
この例のように sth を作成したいのですが、私のコンプには接続を待っているサーバーがあります。別のネットワークの誰かがクライアントを持っています。接続を開始するが…どこで…サーバーのIPは?彼はルーターのIPしか見ていません。
何か案は?:)
編集
大きな問題も二重NATです
LANだけでなく、C#でアプリクライアントサーバーを作成したい。簡単です: TcpListener、TcpClient など。
この例のように sth を作成したいのですが、私のコンプには接続を待っているサーバーがあります。別のネットワークの誰かがクライアントを持っています。接続を開始するが…どこで…サーバーのIPは?彼はルーターのIPしか見ていません。
何か案は?:)
編集
大きな問題も二重NATです
あなたの質問はシナリオ全体を説明していません..しかし、問題を理解しているので、次の答えを提案できます: ターゲットの顧客ベースの場所 (企業ネットワークのサポートまたはサポートなし) に応じて、UPnPなどのさまざまなルーティングオプションを使用できます。スタントまたはIPv6、またはその他の NAT トラバーサル オプションを使用して、リスナーの場所をクライアントに通知できます。Listener がその場所とその環境で許可されている通信モードを通知する中央レジストリ サーバーが常に存在する必要があります。XMPP サーバーの使用は、このような目的では簡単なオプションであり、そのような問題のほとんどを解決します。クライアントは、ディスカバリ サーバーからリスナーの場所を照会すると、リスナーに直接接続できます。
同じ TcpListener と TcpClient を引き続き使用します (それを低レベルにしたい場合)。
WAN を介した通信のテクノロジは、LAN を介した通信のテクノロジと同じです。難しいのは、必要なポートとプロトコルを使用できるように、クライアントとサーバーの間にネットワークを構築することです。
ルーターでポート転送を設定したいだけのようです。クライアントが接続する特定のポートで着信接続が確立されると、ルーターはその接続を LAN 上の指定したマシンにリダイレクトする必要があります。(通常は 192.168.xx のような IP)。これは、TcpListener が接続をリッスンしている IP アドレスでもある必要があります。
特定のルーターの設定についてサポートが必要な場合は、portforward.comを試すことができます。