1

我想创建 NIOServer,它使用 1 个线程从客户端读取数据并使用另一个线程将数据写入客户端。也接受客户端连接将在其他线程中。

有没有在线帮助

谢谢迪帕克

4

3 回答 3

1

如果您使用选择器和单个线程更轻松地完成所有操作,为什么要使用这么多线程?如果您想要一种多线程方法来处理网络 I/O,那么您应该考虑普通的老式阻塞套接字。

顺便说一句,您可以使用 3 个选择器完成所有操作:一个接受连接,一个读取和一个写入。当您接受连接时,您可以使用其他两个选择器注册通道,并使用适当的兴趣操作。

当然,当您必须释放通道时,您必须从两个选择器(读取和写入)中取消 SelectionKey 或关闭它。

于 2009-05-23T09:31:47.337 回答
0

我会向您推荐Apache Mina:非常灵活、高级抽象、高性能等。

于 2009-05-23T16:51:09.320 回答
0

我建议你看一下 JDK 下 sample/nio/server 下的示例代码

于 2009-05-23T10:32:05.780 回答