通常、サーバーは特定のコンピューター上で実行され、特定のポート番号にバインドされたソケットがあります。 サーバーはただ待機し、クライアントが接続要求を行うためのソケットをリッスンします。
クライアント側:クライアントは、サーバーが実行されているマシンのホスト名と、サーバーがリッスンしているポート番号を知っています。 接続要求を行うために、クライアントはサーバーのマシンとポート上のサーバーとランデブしようとします。, クライアントは、この接続中に使用するローカルポート番号にバインドするために、サーバーに対して自分自身を識別する必要もあります。 これは通常によって割り当てられます。
すべてがうまくいけば、サーバーは接続を受け入れます。 その結果を受けて、サーバーのおいしいものをトで提供されるソケットファクトと同じローカルのポートおよびまたはリモートエンドポイントセットのアドレスとポートするサービスです。, 接続されているクライアントのニーズに応じながら、接続要求のために元のソケットをリッスンし続けることができるように、新しいソケットが必要
クライアント側では、接続が受け入れられると、ソケットが正常に作成され、クライアントはソケットを使用してサーバーと通信できます。
クライア,
ソケットは、ネットワーク上で実行されている二つのプログラム間の双方向通信リンクの一つのエンドポイントです。 ソケットはポート番号にバインドされているため、TCPレイヤーはデータの送信先のアプリケーションを識別できます。
エンドポイントは、IPアドレスとポート番号の組み合わせです。 すべてのTCP接続は、その二つのエンドポイントによって一意に識別 そうすれば、ホストとサーバーの間に複数の接続を持つことができます。,
Javaプラットフォームのjava.net
パッケージは、Javaプログラムとネットワーク上の別のプログラムとの間の双方向接続の片側を実装するクラスSocket
Socket
クラスは、プラットフォーム依存の実装の上にあり、特定のシステムの詳細をJavaプログラムから隠します。 ネイティブコードに依存する代わりにjava.net.Socket
クラスを使用すると、Javaプログラムはプラットフォームに依存しない方法でネットワーク経由で通信,
さらに、java.net
には、ServerSocket
クラスが含まれており、サーバーがクライアントへの接続をリッスンして受け入れるために使用できるソケットを実装しています。 このレッスンでは、Socket
およびServerSocket
クラスの使用方法を示します。
Webに接続しようとしている場合は、URL
クラスと関連するクラス(URLConnection
、URLEncoder
)は、おそらくソケットクラスよりも適, 実際、UrlはWebへの比較的高レベルの接続であり、基礎となる実装の一部としてソケットを使用します。 Url経由でWebに接続する方法については、”Urlを使用する”を参照してください。