ソケットを介してサーバーに接続するクライアントがあります。接続後、サーバー上で発生したすべてのイベントは、登録されたすべてのクライアントに送信されます。Javaソケットイベント駆動
すべてのクライアントは、イベントに関連するデータを受信する必要があります。
クライアントを実装するだけです...サーバーに接続してイベントのデータを受け取る必要があることを意味します。
私のような何かを行う上で考えていた:
this.socket = new Socket(InetAddress.getByName(host),
this.socket.connect(socket.getLocalSocketAddress(), SOCKET_TIMEOUT);
そして、whileループでソケットのInputStream
を取得するスレッドを起動します。
しかし、これは、イベント駆動型のクライアントをソケット経由で実装する最良の方法であるかどうかわかりません。
ですか?
スレッドを作成しないと、アプリケーションがブロックされますか?私は常にブロッキング操作であるソケットを読んでいる必要がありますか、間違っていますか?応答のThx –
はい、それはソケットの読み取りをブロックします。あなたが望むものではありませんか? Javaの非ブロックIOフレームフォークもあります。http://en.wikipedia.org/wiki/New_I/Oをチェックしてください –