错误描述如下:
java.io.IOException: Broken pipe
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:260)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at jShell2$3.run(jShell2.java:85)
求高人解答、、、、、、、、、、
------解决方案--------------------
这个错误可能是由于Linux/Unix的连接数限制,或者多个线程对同一Socket进行读写。
这时Socket通道坏掉了。可能是数据发送有延迟,对方没有检测到新数据,直接把通道关了,于是你再往里添加数据时就出现这个异常,通常往Socket里面写数据的Write函数只调用一次时,应该不会出现这个问题,解决方法是自己加入信息交换的协议,比如第一个数据报头标明数据长度;而接收端口在无法检测到新数据时不能立即退出,等接收的数据长度达到要求后,或者一定时间没有新数据再退出。
------解决方案--------------------
数据发送太快?接收不来?