gpt4 book ai didi

java - TCP 客户端套接字填满堆

转载 作者:可可西里 更新时间:2023-11-01 02:48:51 24 4
gpt4 key购买 nike

使用 java 套接字库,我看到当服务器接受 tcp 连接但不从缓冲区读取数据时,同时我们的客户端继续抽取大量数据,客户端堆大小增长到最大可用并压垮客户端应用。无论如何我可以限制套接字缓冲区大小或使用该堆的任何内容,如果违反它,连接将被终止?这样客户端可以检测到客户端检测到连接消失了,

客户端;

  this.socket = new Socket(server, port);
this.socket.setKeepAlive(true);
this.outwriter = new OutputStreamWriter(this.socket.getOutputStream());
this.outwriter.write(o.toString());

服务器端;

conn = serverSocket.accept();

最佳答案

这不是socket引起的。您的应用程序中的其他地方存在内存泄漏。您描述的行为最终将阻塞在 write() 方法中,并且不会消耗任何堆内存。

关于java - TCP 客户端套接字填满堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29705609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com