当前位置:  技术问答>java相关

close() 怎么关不掉socket? socket应该怎么关闭?

    来源: 互联网  发布时间:2015-05-03

    本文导语:  我现在在写一段和c通信的程序其中一段为: private DataInputStream socketReader; private DataOutputStream socketWriter; public void test() { Socket client = null; try { client = new Socket("202.60.1.1",1611);          socketReader = new ...

我现在在写一段和c通信的程序其中一段为:

private DataInputStream socketReader;
private DataOutputStream socketWriter;
public void test() {
Socket client = null;
try {
client = new Socket("202.60.1.1",1611);
         socketReader = new DataInputStream(new BufferedInputStream(client.getInputStream()));
socketWriter = new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));

。。。。。。。。。。。。。。

        } catch (UnknownHostException e) {
   System.out.println("Error setting up socket connection: unknown host"+e);
        } catch (IOException e) {
   System.out.println("Error setting up socket connection: " + e);
        }
     finally {
   try { socketWriter.close();
socketReader.close();
if (client != null) {
           System.out.println("the socketClient is not closed, it will be closed");
client.close();
                  if (client != null)
System.out.println("the socketclient have wrong");
}
   }catch (IOException e){
System.out.println(e);
   }
}


为什么不能关闭?因为打印结果为:

the socketClient is not closed, it will be closed
the socketclient have wrong

关闭后client应该为null吧?  我看书中是这么判断的,不知是否有错?

请问怎么关闭?谢谢!

|
close只是通知虚拟机断开连接,但在缓冲区中还有数据的情况下,由虚拟机判断这次传输完毕才能断开,你用close()无法控制。
非要强行断开要用
shutdownInput() /shoudownOutput!
不过不常用。

|
client.close()调用过后client就会为null吗?
if (client != null)
   System.out.println("the socketclient have wrong");
难道client不为null,就说明它没有close()?
请恕我才疏学浅,呵呵~~

    
 
 

您可能感兴趣的文章:

  • java命名空间java.net类socket的类成员方法: close定义及介绍
  • close(socket)之后,客户端没有收到FD_CLOSE
  • liunx下面包含socket头文件了,close时提示尚未声明???
  • php iis7站长之家
  • 多线程close() socket套接字的问题
  • 爲何這樣?variable socket might not have been initialized --socket.close()
  • linux socket程序,出现closed by peer问题
  • SOCKET调用close断开连接的时候回主动发FIN ACK包吗?
  • socket的close是立刻返回,还是等四路握手过程完成再返回
  • [求助]关于SOCKET编程中close函数阻塞的问题。
  • read一个socket, 发现read到的长度是0, 是否一定代表对方调用了close关闭了socket?
  • 请问一个socket在listen()之后如果把它close()了,那之前已经用子进程处理的连接还在不在?
  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • 当close(socket)时,为什么linux下slect不返回而windows下就返回??????????
  • close掉socket后,在accept了1024次后,出现打开文件最大限制1024的问题
  • [linux]socket已经close,为什么用netstat命令查看还是 ESTABLISHED
  • qt和socket混合编程时,调用close,遇到的难题
  • C++ I/O 成员 close():关闭一个流
  • window.close("a.jsp")时怎么才能不弹出一个确认框?而直接关闭窗口。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.io类printstream的类成员方法: close定义及介绍
  • ::close(STDOUT) 这是什么用法 ???
  • java命名空间java.util.logging类consolehandler的类成员方法: close定义及介绍
  • Linux打开的文件描述符必须手动close吗
  • java命名空间java.io类chararraywriter的类成员方法: close定义及介绍
  • 为何我close了 accept不立即返回
  • java命名空间java.io类outputstream的类成员方法: close定义及介绍
  • Linux 中的printf、open、close
  • java命名空间javax.swing类progressmonitorinputstream的类成员方法: close定义及介绍
  • 为什么close设备后,再打开还是错误呢?
  • java命名空间java.io类objectinputstream的类成员方法: close定义及介绍
  • MAXDATASIZE read close 的声明在哪个头文件里头???
  • java命名空间java.io类objectoutputstream的类成员方法: close定义及介绍
  • 在用man close时出现错误
  • java命名空间java.io类inputstream的类成员方法: close定义及介绍
  • connect成功后返回的sockfd在以后read和write出错后是不是也要close一下啊?
  • java命名空间java.io类stringreader的类成员方法: close定义及介绍
  • close 一个文件描述符会不会改变其值?
  • java命名空间java.io类printwriter的类成员方法: close定义及介绍
  • read、write和close对应到C++库是什么函数
  • java命名空间java.io类chararrayreader的类成员方法: close定义及介绍
  • putty连接出现server unexpectly closed network connection


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3