文档章节

java.net.SocketException: socket closed

jiangmitiao
 jiangmitiao
发布于 2015/08/13 22:09
字数 427
阅读 2811
收藏 2

在使用socket编程的时候,发现当使用完getInputStream方法后,再获取OutputStream就会报

java.net.SocketException: socket closed错误

看到JAVA api中写到

java.net.Socket.getInputStream方法:

 

getInputStream

 

public InputStream getInputStream()throws IOException

 

返回此套接字的输入流。

如果此套接字具有关联的通道,则所得的输入流会将其所有操作委托给通道。如果通道为非阻塞模式,则输入流的 read 操作将抛出IllegalBlockingModeException。

在非正常条件下,底层连接可能被远程主机或网络软件中断(例如,TCP 连接情况下的连接重置)。当网络软件检测到中断的连接时,将对返回的输入流应用以下操作:

网络软件可能丢弃经过套接字缓冲的字节。网络软件没有丢弃的字节可以使用 read 读取。

如果没有任何字节在套接字上缓冲,或者 read 已经消耗了所有缓冲的字节,则对 read 的所有后续调用都将抛出 IOException。

如果没有任何字节在套接字上缓冲,并且没有使用 close 关闭套接字,则 available 将返回 0。

关闭返回的 InputStream 将关闭关联套接字。

返回:

从此套接字读取字节的输入流。

抛出:

IOException - 如果在创建输入流时发生 I/O 错误、没有关闭套接字、没有连接套接字或者使用 shutdownInput() 关闭了套接字输入

 

 

但是!!!!!

我发现Inputstream没有被关闭。

最后发现是Inputstream的包装对象进行了关闭,所以结论是,在你还要进行数据传输时,不要尝试任何流的关闭。

 

更多文章:http://blog.gavinzh.com

© 著作权归作者所有

共有 人打赏支持
jiangmitiao

jiangmitiao

粉丝 19
博文 52
码字总数 52336
作品 1
朝阳
程序员
私信 提问
weblogic集群被管节点出现socket错误

weblogic 集群出现socket错误 启动出现错误 <span ><Nov 13, 2013 12:57:10 PM CST> <Error> <Cluster> <BEA-000109> <An error occurred while sending multicast message: java.io.IOExcep......

tututu_jiang
2018/06/15
0
0
resin频繁挂掉重启

[2012/07/08 11:51:16.660] {watchdog-app-0} Watchdog detected close of Resin[app-0,pid=0] exit reason: FAIL_SAFE_HALT (exit code=2) [2012/07/08 11:51:16.661] {watchdog-app-0} Wat......

侯侯文华
2012/07/10
2.4K
3
socket多线程问题

我想实现一个功能就是用一个socket的对象,两个线程来同时发送两个文件,我个socket对象加了锁,但是当运行第二个线程时会报java.net.SocketException: Socket is closed 这个错误,我对soc...

Vieboo韦伯
2012/07/24
626
3
客户端socket异常关闭

我使用一个心跳来检测客户端与服务器是否还保持连接,但是发送心跳时客户端的socket 抛出java.net.SocketException: Socket is closed,但是我调试的时候socket的 isClosed=false 这表明soc...

lonuery
2013/01/05
1K
3
socket客户端异常关闭,服务端解决方案

异常如下: 引起后果 服务端不知道客户端socket已经关闭,如果继续发送数据,可能导致发送如上关闭异常。如果有多个客户端长连接给服务端建立,异常处理不恰当的话,还可能引起下次发送异常关...

strict_nerd
2018/06/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

equals()的重写规则

自反性。对于任何非null的引用值x,x.equals(x)应返回true。 对称性。对于任何非null的引用值x与y,当且仅当:y.equals(x)返回true时,x.equals(y)才返回true。 传递性。对于任何非null的引用...

无精疯
11分钟前
0
0
Go基础系列:双层channel用法示例

双层通道的解释见Go的双层通道 以下是一个双层通道的使用示例。注意下面的示例中使用了"信号通道"(Signal channel),但这里的信号通道是多余的,仅仅只是为了介绍。 信号通道不用来传递数据,...

echojson
19分钟前
0
0
PHP文件上传error的错误类型

PHP文件上传error的错误类型 - $_FILES['file']['error'] 有以下几种类型 1、UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。 2、UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 ph......

小良下山化了个缘
45分钟前
2
0
分布式项目(四)Mapping Server 数据映射

上回说道CoAp client和server的实现,数据也安装定义的格式发送到了kafka中,接下来就是Mapping server的实现,物理设备数据映射到抽象设备上,并赋予数据业务含义。 iot-mapping 构建iot-m...

lelinked
55分钟前
3
0
使用data pump驱动的外部表移动数据

使用data pump驱动的外部表移动数据 比如我们有一个报表的数据,准备从一个数据库A中移动到另一个数据库B中,如何实现? 这个问题,我们使用带data pump驱动的外部表方式,很容易实现,具体方法如下...

突突突酱
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部