タグ

Socketに関するhsato2011のブックマーク (2)

  • 3. サーバソケット (2)

    3.2. 複数の通信を受け付けるサーバ 前項では簡単なサーバアプリケーションを作成しました。しかし、このサーバには大きな欠点があります。このサーバは同時に1つのクライアントとしか通信できません(試しに複数のウィンドウを開いて、EchoClientを同時に2つ起動してみて下さい)。このサーバは最初の接続要求を受け付けたときに、acceptメソッドが終了してしまいます。acceptメソッドが呼び出されていないと、サーバは接続の受け付けができない点に注意してください。 それでは、acceptメソッドを繰り返し呼び出せばよいのでしょうか。 while(true){ Socket socket = serverSocket.accept(); } これだと、複数の接続を受け付けることはできますが、acceptメソッドでプログラムの実行がブロックされてしまうので、ソケットを利用したメッセージの送受信が

  • 3. サーバソケット

    この節ではソケットを利用したサーバアプリケーションの作成方法を解説します。マルチスレッドで複数の接続を処理できるサーバの作成方法についても解説します。 3.1. サーバソケット 前節では、新しいSocketインスタンスを作成しサーバに接続するクライアントアプリケーションを作成しました。それでは、クライアントからの接続を受け付けるサーバはどのようにして実現するのでしょうか。接続を受け付けるためにはServerSocketクラスを用います。 クライアントのアプリケーションは、サーバに接続したいときにいつでも接続できます。接続先を指定してSocketのインスタンスを作成すれば、ただちにサーバへの接続が完了していました。しかし、サーバ側は、クライアントがいつ接続を要求してくるかわかりません。そのため、クライアントが接続してくるのをずっと待っていなければいけません。 接続を受け付けられる状態で待機す

  • 1