我只是想知道当我们在inputStream上调用close并使用与套接字关联的outStream时java会做什么.与套接字上的close调用有什么区别,即Socket.close().
如果我们只关闭套接字上的io流,但不关闭套接字,我们可以再次重新打开套接字上的io流吗?
提前致谢!
Jes*_*Jes 17
从Socket的java api文档:
public void close()throws IOException关闭此套接字.当前在此套接字上的I/O操作中阻塞的任何线程都将抛出SocketException.
一旦套接字关闭,它就无法用于进一步的网络连接(即无法重新连接或反弹).需要创建一个新的套接字.
关闭此套接字也将关闭套接字的InputStream和OutputStream.
如果此套接字具有关联的通道,则通道也将关闭.
关闭Socket的InputStream将导致Socket关闭.关闭Socket的OutputStream也是如此.
来自Socket#getInputStream()的java api文档
关闭返回的InputStream将关闭关联的套接字.
检查API文档,这是有原因的.
use*_*421 10
您应该关闭从套接字创建的最外面的输出流.那将冲洗它.关闭套接字或输入流不会这样做,所以它是不够的.关闭该输出流后,您无需执行任何其他操作.
| 归档时间: |
|
| 查看次数: |
16296 次 |
| 最近记录: |