对网络连接的Java轮询

时间:2013-03-19 06:54:59

标签: java polling serversocket

我正在用Java编写一个程序,我在一个线程上打开了256个网络连接。每当套接字上有任何数据时,我都应该阅读并处理相同的数据。目前,我使用以下方法:

while true
do
   iterate over all network connections
   do
         if non-blocking read on socket says there is data
         then
               read data
               process it
         endif
   done
   sleep for 10 milli-seconds
done

有没有更好的方法在Java上做同样的事情?我知道在C / C ++中有一个poll方法。但是在谷歌搜索之后,我对Java的民意调查没有具体的了解。有人可以解释一下吗??

2 个答案:

答案 0 :(得分:1)

java.nio包听起来适合你想做的事。它提供了执行异步IO的方法。

答案 1 :(得分:1)

看看http://netty.io/(这是一个在java上构建网络应用程序的非阻塞框架)。 https://community.jboss.org/wiki/NettyExampleOfPingPongUsingObject - 网络上的“你好世界”。