2014-01-22 222 views
3

我有一个运行在托管的Windows 2008服务器上的java 1.6“client”。当“客户端”启动时,它连接到使用外部机:病毒扫描能否关闭java TCP套接字连接?

socket = new Socket(host, port); 

此套接字连接已关闭的“服务器”的附加问题每周未识别出闭合插座。所以当“客户端”试图立即重新连接时,“服务器”认为它已经连接并且不允许另一个连接。

我们只是现在才意识到,这与计算机病毒扫描程序完全吻合。

这些症状是否可以由病毒扫描程序引起?病毒软件来自赛门铁克,但我不知道更多。如果您认为它有帮助,我可以得到这些细节。

+1

我见过Symantec和McAfee等病毒扫描程序和安全软件包的情况变得更糟。 :)在任何情况下,由于各种原因,TCP/IP连接可能会关闭。有没有什么办法可以让你的服务器代码能够接受来自客户端的重新连接?这是更合适的修复方法。 – selbie

+0

此外,您可以检查Windows事件日志(控制面板 - >管理员工具 - >事件查看器),以查看在断开连接时是否发生任何奇怪的网络连接更改。 – selbie

+0

@selbie这是最烦人的部分。服务器端继续认为连接已经打开了一段时间。事件查看器是我们注意到赛门铁克运行的方式。 – gjrwebber

回答

0

我认为它更有可能是中间的东西认为套接字已经超时后打开了很长时间,并关闭它。

Java-Sockets在将某些内容发送到封闭流之前不会识别封闭流,因此您的问题可能是由此引起的。