0

わかりましたので、c# を使用して TCP をいじり始めたところです。「Hello World」メッセージを送信できるサーバーのセットアップに成功しました。同じルーター) 192.168 番号を使用して接続します。しかし、それの全体的な目的はインターネット上で動作することであり、ルーターのIPアドレスは明らかに両方のコンピューターで同じです.ルーターのIPアドレスを入力しても機能しません.192.168番号を入力すると、間違いなく. t はインターネット経由で動作します... では、どの IP を使用すればよいですか? または、より良い解決策は何ですか?

重要な場合のコード行は次のとおりです

 var client = ScsClientFactory.CreateClient(new ScsTcpEndPoint("192.168.1.142", 10085));

192.168.1.142 は、サーバーが起動しているラップトップのローカル IP です。

10085 はポートです。

4

3 に答える 3

2

ポート 10085 への着信接続をローカル IP アドレスに転送するようにルーターを構成する必要があります。そうすれば、誰でも外部 IP アドレスを使用して接続できるようになります。

各ルーターには独自の構成システムがあるため、「ポート フォワーディング」とルーター モデルを Google で検索する必要があります。

于 2012-09-06T12:49:35.103 に答える
1

それはあなたが達成しようとしていることに依存します。たとえば、チャット アプリケーションを作成する場合。クライアント (ルーターの背後) は、そのローカル IP が 192.168.1.111 で、ルーター IP が 80.120.78.100 であるとします。クライアントはサーバーに接続します。

その接続が確立されると、クライアントとサーバーの間で接続が既に開かれているため、クライアントに送り返すことは問題ではなく、サーバーは同じ接続を使用するだけです。ルーターは、パケットをどこに「ルーティング」するかを判断しますが、これについては一般的に知る必要はありません。

ただし、サーバーがクライアントを探している場合、それは異なります。

于 2012-09-06T12:57:37.997 に答える
0

ネットワークについて少し説明しようと思いますが、それについては検索する必要があります。

基本的に、 1 つのネットワークなど、 IP マスクを理解します。192.168.1.0ルーターの役割は、さまざまなネットワークを接続することです。そのため、ルーターには通常、WAN (ワイド) と LAN (ローカル) の 2 つのポートがあります。

この概念では、インターネットをさまざまな ISP が接続されてできた 1 つの大きなネットワークとして見ることができます。各 ISP には、そのネットワークへのルーターと、インターネット接続を提供する別のルーターがあります。最後に、自宅にルーターがあります。このことから、自宅、ISP、インターネットの 3 つのネットワークが接続されていることがわかります。

あなたが私の家のコンピューターに接続できるようにするには、このコンピューターをインターネットから利用できるようにし、公開する必要があります。これを行うには、ルーターでNAT (ネットワーク エリア変換) を設定します。このNATは、「ポート12345でインターネットから来るものはすべて、ポート80で192.168.1.10(私のサーバー)に転送する」と言っています。

これは非常に簡単な説明ですよね?


さて、大きく後退しましょう。ネットワーク上で別のコンピュータを使用できる場合は、プログラムがより簡単な方法で動作しているかどうかをテストできます。

  1. 両方のコンピュータをLANに接続して、同様の IP アドレスを取得します。192.168.1.10彼らがそうであるふりをしましょう192.168.1.20
  2. サーバーを実行し、10すべての種類のファイアウォール (Windows およびサードパーティ) を無効にします。
  3. でクライアントを実行20し、サーバーへの接続を試みます
于 2012-09-06T13:37:07.680 に答える