我正在使用Java,并试图编写一个基于NIO2的TCP。
编写一个简单的回显服务器没有问题,而且工作完美。现在,我试图接受许多客户端,并向所有连接的客户端广播不可中断的消息,但我面临着问题。
因为时间有点长,我发布了代码在帕斯宾
直到现在,我才能传递一条信息,在这之后,有些事情出错了,过了一段时间,我得到了以下错误:
线程中的异常“池-1-线程-13”java.nio.channels.WritePendingException
发布于 2013-01-03 15:52:14
线程中的异常“池-1-线程-13”java.nio.channels.WritePendingException
这意味着您试图在等待上一次写入完成的情况下进行写入。当您使用NIO2调用with ()时,您将得到一个未来,您可以等待它来检查它是否已经完成。
我不建议使用NIO2,除非您有infiniband (这是为其设计的),NIO2的使用至少是NIO的两倍,而且我甚至不建议使用NIO,除非您使用简单的阻塞NIO或像netty或mina这样的库。
对于聊天程序,我只会使用普通的NIO,甚至IO。或者您可以重用已经存在并工作的很多,很多聊天库之一。;)
https://stackoverflow.com/questions/14142270
复制相似问题