none
socket编程,模拟多客户端导致当前机器,连接不上服务器任何服务 RRS feed

  • 问题

  • 我写了一个GPS客户端模拟器,模拟大量客户端连接服务器定时向服务器发送数据,来检查服务器的符合能力!

    采用了TCP长连接方式,使用了TcpClient类。服务端用的java的netty编写的,如果客户端在30秒内接受不到数据,会抛出超时异常,然后断开当前连接通道。

    首先用一个task来负责创建客户端,根据需要创建的客户端数量,然后添加进一个Dictionary集合中,在所有的客户端都连接完成后,启用一个定时器来定时检查集合中的客户端的当前状态,如果连接不通,那么就重新发起连接,先把旧的连接关闭,并且释放资源。

    现在问题出来了,如果运行时间一长就会出现一个异常:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”。如果出现这个异常,所有的客户端都会断开连接,并且如果当前系统没有关闭,本机就无法连接服务器的任何服务,包括使用Telnet命令、打开部署在服务器上的WEB服务等。

    当系统关闭后,需要等待一段时间,大概几分钟,就又可以连接了。在当前电脑不能连接的同时,换一台电脑是可以连接上服务器。

    目前看来只是堵塞了本机的连接,那么想请教一下!这个问题的原因出在哪里?

    2015年10月15日 5:18

答案

全部回复