为什麽会出现java.io.IOException: Connection reset by peer的错误

mildcaster 2002-05-28 09:36:49
我是在向自己建立的HttpURLConnection的OutputStream中写数据的途中发生这种错误的,也就是说报错之前已经写成功了若干个字节。
程序运行期间并无其他操作。

java.io.IOException: Connection reset by peer
at com.netscape.server.http.servlet.NSServletSession.write(NSServletSession.java, Compiled Code)
at com.netscape.server.http.servlet.NSServletOutputStream.flushPrivate(NSServletOutputStream.java, Compiled Code)
at com.netscape.server.http.servlet.NSServletOutputStream.write(NSServletOutputStream.java, Compiled Code)
...全文
5836 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gangyi 2002-05-29
  • 打赏
  • 举报
回复
由于数据库服务器重启过,你的App Server没有重启,又再使用连接池的时候,也会出这个错。
skyyoung 2002-05-29
  • 打赏
  • 举报
回复
Server读取某堆大小数据或读取某个特殊数据就CLOSE你的Connection,你就会出现哪个错误。总之是由于Connection关闭了,你仍然想写数据时候就出错。
mildcaster 2002-05-29
  • 打赏
  • 举报
回复
没人回答吗?
mildcaster 2002-05-28
  • 打赏
  • 举报
回复
up up up
mildcaster 2002-05-28
  • 打赏
  • 举报
回复
我是按照1024字节一个单位进行写操作的,报错之前已经写成功了若干次,
而且对端并没有任何主动的关闭联接的动作。
所以我怀疑是所传输的数据中有什麽特殊字符引起了联接关闭,
不知对不对?
wangf 2002-05-28
  • 打赏
  • 举报
回复
这要从socket的函数调用说起,当你write第一次时,对端已经close掉了。即第一次write时写的是一个FIN的socket,这是不会报错的,虽然表面上成功了,但对端不会接收到。同时,该次的write导致了本端socket产生一个RST,当你第二次write一个RST的socket时,就会引出Connection reset by peer的异常,这和BSD风格的socket错误信息是一致的。注意,通常对一个RST socket写会导致错误,在UNIX下用C的话,会导致程序终止。而在WIN下,则错误信息就是Connection reset by peer。

JAVA的socket实际上是通过JNI方式调用C的socket函数,所以对BSD socket风格的函数最好有一定的了解。有关这方面的问题,在《UNIX网络编程》中有精辟的描叙,该书是编写socket程序的极好参考手册,建议放在案头阅读。
mildcaster 2002-05-28
  • 打赏
  • 举报
回复
网络没有问题。
gzwrj 2002-05-28
  • 打赏
  • 举报
回复
查一下你的network

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧