收听消息的监听器

时间:2012-05-23 14:38:24

标签: java

我目前正在尝试使用Socket和ServerSocket类创建一个聊天应用程序,但我遇到了一个障碍。当消息从服务器或客户端传入时,我需要某种监听器来执行某个代码块,但我似乎无法找到它。一个选项当然是每隔10毫秒检查一下传入的消息,但是没有更智能的解决方案吗?

2 个答案:

答案 0 :(得分:0)

通常,您应该为正在读取的每个Socket分配一个Thread,以便Thread可以阻塞套接字并等待传入​​的信息。

您应该查看DataFetcher:http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/io/

此类可以异步工作,并在新数据可用时通知FetcherListener

答案 1 :(得分:0)

我建议NettyMina。至于Socket和ServerSocket,read()调用被阻止,所以在某种程度上,只要有传入的数据,就会执行read()下面的代码。

请注意不完整的消息,因为套接字提供了一个字节流,并且应用程序通常对离散消息更为熟悉。