java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!相关的知识,希望对你有一定的参考价值。

如题

getInputStreampublic InputStream getInputStream() throws IOException 返回此套接字的输入流。 如果此套接字具有关联的通道,则所得的输入流会将其所有操作委托给通道。如果通道为非阻塞模式,则输入流的 read 操作将抛出 IllegalBlockingModeException。 在非正常条件下,底层连接可能被远程主机或网络软件中断(例如,TCP 连接情况下的连接重置)。当网络软件检测到中断的连接时,将对返回的输入流应用以下操作: 网络软件可能丢弃经过套接字缓冲的字节。网络软件没有丢弃的字节可以使用 read 读取。 如果没有任何字节在套接字上缓冲,或者 read 已经消耗了所有缓冲的字节,则对 read 的所有后续调用都将抛出 IOException。 如果没有任何字节在套接字上缓冲,并且没有使用 close 关闭套接字,则 available 将返回 0。 关闭返回的 InputStream 将关闭关联套接字。 返回: 从此套接字读取字节的输入流。 抛出: IOException - 如果在创建输入流时发生 I/O 错误、没有关闭套接字、没有连接套接字或者使用 shutdownInput() 关闭了套接字输入</dd> 楼主好好看API!!!!!!!!!!!!!!!! 参考技术A 别关闭InputStream。可以重用的~ 参考技术B tcp要关的,udp不用的 参考技术C java 数据流关闭后,对应的Socket不会自动关闭。除非你结束这个程序,他就会关闭。

学习JAVA Socket中 启动了serverSocket 再启动socket 为啥serversocket 自动关闭了

其他电脑都可以正常运行 我电脑就不可以 启动serverSocket正常 但是1建立连接 就报连接错误 然后 serverSocket 关闭了 我把防火墙360都关了的啊 求高手

参考技术A 一般这种情况,把Eclipse 重新启动哈就搞定了,端口被占用,不关360 的原因,可能是你的连接代码有问题,贴出来看看追问

删了安装都不行的 ~~JDK也重新安装了

参考技术B 第2次开启时,端口被占用。

另外,就是你的ServerSocket是只写了一次应答、然后退出的。追问

我随便换个端口 都不行啊 高手 其他电脑运行就可以 ,我以前运行都正常 ,就一次我把代码拷到另一个电脑上去 然后我电脑开启服务器 那个电脑开启客户端测试 我电脑就报错了 然后 以后都启动不起来了,我程序绝对没问题 3个电脑都测试了 ,就我电脑不行, Connection reset 这个错误

本回答被提问者采纳
参考技术C 换一个端口试试 参考技术D 没有调用main()函数。。。

以上是关于java 数据流关闭后 对应的Socket也会自动关闭吗? 请问有啥方法能不关闭Socket!的主要内容,如果未能解决你的问题,请参考以下文章

socket 如果不关闭会自动关闭吗?为啥要心跳连接?

java关闭IO流的时候Socket也同时关闭

[Java]I/O底层原理之二:Socket工作机制

怎样判定socket连接已经关闭

学习JAVA Socket中 启动了serverSocket 再启动socket 为啥serversocket 自动关闭了

批处理 自动输入Y和 允许后自动关闭