2009-05-15 38 views
1

これは小さな疑問と本当に1のmind.Soに来てはならないものですが送信するポート番号を行い、LAN上の2つのホスト間でメッセージを送信するためには、このポート番号

のための私を許してくださいと受信データは同じでなければなりませんか?

答えて

2

いいえあなたは既知のポート番号に送信しますが、クライアント側のポート番号は本質的にランダムです。つまり、複数のクライアントが異なるクライアント側のポート番号を使用して、1つの既知のサーバー側の番号のみを使用して1つのサーバーに送信できます。

あなたは、リモートWebサーバに話を1つのマシン上で複数のクライアントがある場合、それは次のようになります。

localhost:31000 -> webserver:80 
localhost:31001 -> webserver:80 
localhost:31002 -> webserver:80 

とあなただけのWebサーバを指定する必要があるだろう:80の組み合わせを。クライアントサイドの数字は一過的です(詳細はhereを参照してください)

0

いいえ、そうではありません。ホスト上で接続を確立するには、よく知られたポートが必要ですが、クライアントはOSから返されるランダムなポート番号を持つソケットを作成します。

1

  1. クライアントマシンが サーバマシンクライアントマシンが HTTPなどのポート80のために、サーバー マシンのポートを知っている をニーズに話をしたいと考え、次のように動作します
  2. クライアントマシンは、サーバーマシンへの接続 を開きます。それは、一つには クライアント上の任意のポート上で開か ですが、サーバー
  3. 上の既知のポート番号 に、サーバは、クライアントがそれを伝えるのポート番号 にこのパイプに沿ってバック 送信し、ランダム 開かれた
0

$ 0.02を追加するだけで、サーバは同じソケットで複数の接続を開くことができます。したがって、ポート80に接続している3つのクライアントがある場合、それらはすべて同時に接続できます。あなたは1つのクライアントがポートを「ホギングする」ことを心配する必要はありません。

関連する問題