Java网络编程 --– 套接字的半关闭

Java网络编程 --– 套接字的半关闭


半关闭(half-close):半关闭提供这样一种通信方式,套接字的一端可以终止其输出,同时仍然可以接受来自连接的另一端发送过来的数据。(类似于TCP的四次挥手的过程)


半关闭是通过关闭一个套接字(浏览器)的输出流来表示发送给服务器(套接字一端)的数据已经结束了,但是必须保持浏览器端的输入流处于打开状态。图示:



半关闭意味着套接字是没有完全关闭的,一旦套接字完全关闭,那么与服务器的连接将立刻断开,也就无法接受服务器发送过来的数据啦!

 

半关闭的应用场景:一站式服务情况下,比如说HTTP请求服务。

 

Java对半关闭服务的支持(客户端代码演示):

 Socket socket = new Socket(host,port);

 Scanner scan = newScaner(socket.getInputStream());

 PrintWriter out = newPrintWriter(socket.getOutputStream());

 out.print(“ ”);

 out.flush();// 将数据推出

 socket.shutdownOutput();// 关闭输出流

 while(scan.hasNextLine() != null){

 // do something

}

socket.close(); // 关闭套接字

java API 中的相关方法:

         java.net.Socket 中

voidshutdownOutput();

voidshutdownInput();

booleanisOutputShutdown();

boolean isInputShutdown();

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值