c老师您好,我的nio程序不知道为什么会报“远程主机强迫关闭了一个现有的连接”,我是windows,用的cmd的telnet连接上的,代码跟您的nio服务器代码一样,希望老师能帮我解惑~
并且使用windows的telnet输入文字时,会非常奇怪,输入完第一个字符后,服务器就已经处理了:
并且过不了多久,“远程主机强迫关闭了一个现有的连接”问题还会出现。
而使用Xshell就不会有“只读一个字符”的这种问题,但是“远程主机强迫关闭了一个现有的连接”问题仍存在:
============================================================
2018-2-16更新:
谢谢c老师,我重新试了一下,将代码中会抛出异常的地方,都catch了,然后打印出相关日志,结果频繁打印“远程主机强迫关闭了一个现有的连接”,目前原因还是不太明白,希望老师能抽空再帮我看看。
代码如下:
频繁死循环打印日志如下:
============================================================
2018-2-28更新
谢谢c老师的指点,加上了cancel和close果然服务端更健壮了,不会再死循环打印信息了~
我最终发现原因了:
原来迅雷的ThunderPlatform.exe进程会一直会向我的nio程序建立连接,但是其连接用不了几秒钟就会断开(肯定是个定时任务,具体要用8888端口来干什么就不清楚了),于是造成了如下的不相干日志,对我的程序造成了干扰: