问答详情
源自:3-4 完善用户登陆之服务器响应客户端

socket.shutdownOutput()及TCP协议的问题

在客户端发送数据的代码后为什么必须加上socket.shutdownOutput();//关闭socket输出流但不断开连接;

不加的话会发生 Connection reset异常。

主要困惑在 代码是一句句执行的。写一句PrintWriter.write(),后面没有发送数据的代码,自然就是不发送数据了?为什么还要显示指明socket.shutdownOutput();//关闭socket输出流;这个跟TCP还是跟socket的原理有关系?

提问者:鲁国人 2017-07-22 22:58

个回答

  • xuzhen
    2017-07-24 13:45:29

    估计是有关系,再加上占用资源什么的,应该就是不关就让你报异常