c#でのネットワークの仕組みを知りたいので、TCPサーバーとクライアントの使用方法を学びました。 唯一の問題は、両方のコンピュータが同じネットワークに接続されている場合にのみ動作することです。LANでないc#でのネットワーク
どうしたら通信できますか?
c#でのネットワークの仕組みを知りたいので、TCPサーバーとクライアントの使用方法を学びました。 唯一の問題は、両方のコンピュータが同じネットワークに接続されている場合にのみ動作することです。LANでないc#でのネットワーク
どうしたら通信できますか?
TCP/IPソケットは、それらの間にルートがある限り、任意の2つのエンドポイント間で動作する必要があります。それらの間にルートがない場合、2つの別々の切断されたネットワークが存在する場合について話しています。その場合は、2つのネットワークをブリッジするために何かが必要になります。
TCP/IPサーバー/クライアント通信を使用していて、コンピュータが別のネットワーク上にあり、それらが接続するルートがあり、通信できない場合は、ファイアウォール設定やその他のネットワーク設定を調べてTCP/IPパケットあるネットワークから他のネットワークに到達することができます。
クライアントがサーバーに接続しようとしたときに、正しいIPアドレスを使用していることを確認してください。 IPアドレスが10.0.0.5のサーバがポート4823でリッスンしている場合は、サーバIPアドレス10.0.0.5とポート4823を使用して、クライアントからそのIPアドレスにtelnet接続してみてください。通常、接続すると、 。
コマンドプロンプトから:telnet 10.0.0.5 4823
まさに私が書こうとしていたもの。私はトムがドーナツに賭けるのは、サーバのエンドポイントでポート転送を設定し、プライベートIPの代わりにパブリックIPを使用することで、彼のプログラムが正常に動作することです。 –
もう一つは、彼が正しい外部IPアドレスを指定していることを確認することです。 –
OK、私は私のパブリックIPをここでチェックしました:www.mypublicip.com。 クライアントは次のように接続しています。 Client.Connect(IPAddress.Parse( "109.64.200.92")、8001); (IPは結果です) サーバーはまだ認識しません.. –
TCPでの通信はIPアドレスで行われます。したがって、クライアントとサーバが同じネットワーク上にない場合でも、サーバのIPアドレスを指定すると、クライアントはそのクライアントと通信することができます(もちろん、クライアントが常駐するネットワークが適切に設定され、サーバーのネットワークに到達する)。また、DNSサービスを使用して、IPアドレスではなくサーバーのFQDNを指定することもできます。クライアントネットワーク上のDNSサーバーは、サーバーのFQDNをIPアドレスに解決します。
両方をインターネットに接続しますか? :) –