首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在长时间运行的应用程序中会出现SocketException?

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

Stack Overflow用户
提问于 2011-05-16 19:51:08
回答 2查看 318关注 0票数 1

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

代码语言:javascript
运行
复制
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服务器读取一些值,并临时存储这些值,并将这些值提供给其他client.Not确定这些错误是由于系统上的过载还是由于内存issues.Please帮助

EN

回答 2

Stack Overflow用户

发布于 2011-05-16 20:04:44

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

  • 远程服务关闭/中断并定期重新启动,
  • 远程服务已决定关闭连接的一端,因为它是空闲的,
  • 网络连接是间歇性的,您偶尔会遇到中断或拥塞导致的太长时间的“电力中断”,
  • 您正在使用NAT或类似的地址,并且用于连接的端口号已被NAT网关回收,或者
  • 某些东西正在强制执行有关打开的时间过长的某些策略。

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

票数 4
EN

Stack Overflow用户

发布于 2011-05-16 19:55:15

我会说这是因为你的网络提供商每24小时重置一次你的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6016940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档