4

我正在用 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 轮询的具体想法。有人可以解释一下吗?

4

2 回答 2

1

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

于 2013-03-19T07:22:59.797 回答
1

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

于 2013-03-19T07:30:52.647 回答