1

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

4

2 回答 2

0

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

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

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

于 2012-05-23T14:42:20.677 回答
0

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

不过要注意不完整的消息,因为套接字提供字节流,并且应用程序通常更喜欢离散消息。

于 2012-05-23T14:52:34.350 回答