我有一個客戶端,將通過套接字連接到服務器。連接服務器上發生的每個事件後,都會發送給所有註冊的客戶端。Java套接字事件驅動
每個客戶都應該收到有關該事件的數據。
我只需要實現客戶端......這意味着我需要連接到服務器並接收事件的數據。
我想在做這樣的事情:
this.socket = new Socket(InetAddress.getByName(host),
this.socket.connect(socket.getLocalSocketAddress(), SOCKET_TIMEOUT);
,然後啓動一個線程,其獲取插座的InputStream
在while循環。
但我不知道這是通過套接字實現事件驅動客戶端的最佳方式。
是嗎?
如果我不產生線程我的應用程序將阻止,對吧?我需要不斷地閱讀阻塞操作的套接字,還是我錯了? Thx回覆 – 2012-03-09 16:38:27
是的,它會阻止讀取套接字。這不是你想要的嗎? Java中也有非阻塞IO framefork,請查看http://en.wikipedia.org/wiki/New_I/O – 2012-03-10 07:43:14