我已经编写了一个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服务器读取一些值并临时存储该值并向其他客户端提供相同的内容。不确定如果这些错误是由于系统上的重载或由于内存问题引起的。请帮助< / p>
答案 0 :(得分:3)
可能(直接)加载或与内存无关。相反,它更可能是以下之一:
远程服务已关闭/倒闭并定期重新启动,
远程服务已决定关闭其连接结束,因为它处于“空闲”状态,
网络连接是间歇性的,您偶尔会遇到停电或拥堵导致的“掉电”太长时间,
您正在使用NAT或类似设备,并且NAT网关已回收用于连接的端口号,或
正在执行一些关于TCP / IP连接打开时间太长的政策。
最重要的是,如果您希望ti长时间运行,您的客户端软件需要能够应对丢失的连接。这就是互联网的运作方式。
答案 1 :(得分:0)
我会说这是因为您的连接每24小时都会被您的Internet提供商重置。