gpt4 book ai didi

Java NIO2 AIO - TCP 聊天服务器

转载 作者:行者123 更新时间:2023-11-30 04:33:06 27 4
gpt4 key购买 nike

我正在玩 Java NIO2,我正在尝试编写一个基于 AsynchronousServerSocketChannel 的 TCP 聊天服务器。

对一个简单的 ECHO-Server 进行编程没有问题并且工作完美。现在我正在尝试接受许多客户端并向所有连接的客户端广播传入消息,但我遇到了问题。

因为它有点长,我发布了代码 here in pastbin

到目前为止,我能够广播一条消息,之后出现问题,过了一会儿我收到以下错误:

Exception in thread "pool-1-thread-13" java.nio.channels.WritePendingException

最佳答案

Exception in thread "pool-1-thread-13" java.nio.channels.WritePendingException

这意味着您尝试在不等待上一次写入完成的情况下进行写入。当您使用 NIO2 调用 write() 时,您会得到一个 Future,您可以等待它来检查它是否已完成。

我不建议使用NIO2,除非你有infiniband(这就是它的设计目的),NIO2的使用复杂度至少是NIO的两倍,我什至不建议使用NIO,除非你使用简单的阻塞NIO或者像 netty 或 mina 这样的库。

对于聊天程序,我只会使用普通的 NIO 甚至 IO。或者您可以重复使用 many, many chat libraries 之一已经存在并且可以工作。 ;)

关于Java NIO2 AIO - TCP 聊天服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14142270/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com