我正在开发一个套接字服务器/客户端应用程序,使用JAVA作为服务器,使用J2ME作为客户端。当我在 Windows XP 中测试服务器时一切正常。然而,当我将套接字服务器部署到运行 Windows Server 2003 的服务器时,出现了一个严重的问题。当我的客户端尝试请求需要服务器发送大数据的任务时,我的 Windows 服务器丢失了网络连接。仅当我拔掉网线并再次插入时,服务器上的网络连接才会保存。
我在网上搜索了解决方案并尝试了很多想法: - 精炼代码:在“finally” block 中小心地打开和关闭连接;指定打开和关闭 In-OutStream 的顺序;增加缓冲区大小;增加 Java 堆大小; - 重置并修复服务器的 Winsock。 - 声明服务器的监听 IP(嗯,我的 Windows Server 有 2 个 IP:一个用于本地,另一个用于 Internet)
但是,不幸的是,一切都没有改变。如果我的服务器必须发送大量数据,它仍然会死掉。 有人跟我一样遇到这个问题吗?或者有人对我有什么想法吗?
感谢任何帮助。
最佳答案
我建议问题可能不在您的 Java 程序中。但是,为了进一步排除故障,我建议您创建一个二叉搜索 TreeMap 。确定可以将问题区域减半的测试,然后重复。
我很久以前就见过一个问题,由于从 10-Base2 网络中删除了终结器,因此无法传输大文件。您可以尝试使用其他软件(例如 FTP)传输大文件,检查以确保传输速率合理等。
您可以使用 ping 向 Windows 2003 主机发送不同大小的数据包。您可以在服务器本地运行一个客户端,看看是否有同样的问题。
您的 NIC、路由器或以太网电缆可能出现部分故障。这就是case at LAX几年前。
关于Java套接字服务器使Windows Server 2003的网络死机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647985/