Java - 套接字数据传输是否可能因内存太少而被阻止?

标签 java sockets memory tcp timeout

我正在虚拟服务器上测试我的软件(多个应用程序)。所有应用程序都使用 TCP 连接到中央服务器。但几个小时后,它们都超时了,这意味着它们不再发送保活数据包。实际上它们确实做到了,但它没有到达服务器。 几秒钟后,超时的应用程序将退出并出现 OutOfMemoryError。

那么应用程序之间的套接字通信是否也可能因为内存太少而被“阻止”?

编辑:通常 OOME 之前的异常是带有 Broken Pipe 的 IOException。

最佳答案

实际上,相关的异常是管道损坏。这意味着您已写入已被对等方关闭的连接。换句话说,应用程序协议(protocol)错误。

你的帖子的其余部分只是猜测。显然,某处存在内存泄漏,并且应用程序协议(protocol)实现错误。找到它们并修复它们。

关于Java - 套接字数据传输是否可能因内存太少而被阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23702360/

相关文章:

java - Spring 与 Selenium 的依赖集成

swift - 如何读取套接字中的所有行(快速)

perl tcp 客户端不显示传入数据

c++ - 让一个程序看到另一个程序的内存

windows - Windows Server 2003 内存使用说明

java - 运行我的简单代码时出现 ArrayIndexOutOfBoundException

Java用Java控制Windows Media Player

java - Eclipse 控制台中出现 "Unable to parse type name from hyperlink"错误

javascript - 安装 Nodejitsu

memory - 为什么堆栈会溢出?