我正在虚拟服务器上测试我的软件(多个应用程序)。所有应用程序都使用 TCP 连接到中央服务器。但几个小时后,它们都超时了,这意味着它们不再发送保活数据包。实际上它们确实做到了,但它没有到达服务器。 几秒钟后,超时的应用程序将退出并出现 OutOfMemoryError。
那么应用程序之间的套接字通信是否也可能因为内存太少而被“阻止”?
编辑:通常 OOME 之前的异常是带有 Broken Pipe 的 IOException。
最佳答案
实际上,相关的异常是管道损坏。这意味着您已写入已被对等方关闭的连接。换句话说,应用程序协议(protocol)错误。
你的帖子的其余部分只是猜测。显然,某处存在内存泄漏,并且应用程序协议(protocol)实现错误。找到它们并修复它们。
关于Java - 套接字数据传输是否可能因内存太少而被阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702360/