当Telnet客户端断开连接时,AsynchronousSocketChannel
将触发其CompletionHandler
的{{1}}功能。
completed(Integer result, ByteBuffer attachment)
整数是一个完全随机的数字。
我无法区分接收新消息和客户端disconection。我怎么解决这个问题? 如何过滤此事件,以便我可以区分实际消息和垃圾随机执行?
以下是完整代码:
result
答案 0 :(得分:1)
根据the documentation,结果不是随机的,它将是成功读取的字节数(可能是在套接字断开之前):
传递给完成处理程序的结果是读取的字节数,如果由于通道已到达流末尾而无法读取字节,则返回-1。
我认为客户必须向您发送您不期望的数据,而且价值实际上是正确的。