gpt4 book ai didi

java - 为什么在长时间运行的应用程序中出现 SocketException?

转载 作者:行者123 更新时间:2023-11-29 03:56:42 25 4
gpt4 key购买 nike

我编写了一个 Java 套接字服务器应用程序,如果我长时间运行它会报错,比如 4-8 小时,下面是我得到的错误列表:

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:130)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:282)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:324)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:176)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:153)
at java.io.BufferedReader.readLine(BufferedReader.java:316)
at java.io.BufferedReader.readLine(BufferedReader.java:379)
at LiveRate.processData(LiveRate.java:224)
at LiveRate.mainLiveRate(LiveRate.java:265)
at LiveRate.liveRate(LiveRate.java:126)
at LiveRate.run(LiveRate.java:119)
at java.lang.Thread.run(Thread.java:636)

我的套接字应用程序从另一个 TCP/IP 服务器读取一些值并临时存储该值并将其提供给其他客户端。不确定这些错误是因为系统负载过重还是内存问题。请帮忙

最佳答案

它可能与(直接)负载或内存无关。相反,它更有可能是以下之一:

  • 远程服务关闭/掉线并定期重启,

  • 远程服务已决定关闭它的连接端,因为它“空闲”,

  • 网络连接时断时续,您偶尔会遇到中断或拥塞导致的“断电”时间过长,

  • 您正在使用 NAT 或类似的,并且用于连接的端口号已被 NAT 网关回收,或者

  • 有些东西正在执行一些关于 TCP/IP 连接打开时间过长的策略。


底线是,如果您希望长时间运行,您的客户端软件需要能够处理丢失的连接。这就是互联网的运作方式。

关于java - 为什么在长时间运行的应用程序中出现 SocketException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6016940/

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