java socket连接之socket半关闭

当我们向服务器传输数据,并不知道传输多少数据时,我们如果当传输数据全部完成后,理科关闭套接字,那么也就立刻与服务器断开了,这个时候就无法获取服务器的响应了

解决办法:使用半关闭方法,也就是只关闭一个套接字的输出流来表示发送给服务器的请求数据已经结束,但是必须保持输入流处于打开状态

直接看代码

Socket socket=new Socket(host,port);
Scanner in =new Scanner(socket.getInputStream());//输入流
PrintWriter writer= new PrintWriter(socket.getOutputStream());//输出流
writer(...);
writer.flush();
socket.shutdownOutput();//关闭输出流
while(in.hasNext()!=null){ //继续接受来自服务器的输入
  String line = in.nextLine();
}
socket.close();//所有结束才关闭套接字

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏较真的前端

同样是客户端会话级存储,sessionStorage和session cookie有什么?

2554
来自专栏移动端周边技术扩展

Cocoapods生成静态库(完整)

2605
来自专栏魏艾斯博客www.vpsss.net

如何创建.htaccess 文件

关于.htaccess 文件,一般用于虚拟主机中,使用 VPS 建站的可以忽略了。对于使用虚拟主机建站的朋友来说.htaccess 文件可以用作伪静态化设置和 ...

4478
来自专栏wOw的Android小站

[Android] Service服务详解以及如何使service服务不被杀死

  服务是一个应用程序组件,可以在后台执行长时间运行的操作,不提供用户界面。一个应用程序组件可以启动一个服务,它将继续在后台运行,即使用户切换到另一个应用程序。...

9171
来自专栏腾讯云Elasticsearch Service

Elasticsearch底层系列之Shard Allocation机制

    Elasticsearch由一些Elasticsearch进程(Node)组成集群,用来存放索引(Index)。为了存放数据量很大的索引,Elastic...

1.1K2
来自专栏Felix的技术分享

《一个操作系统的实现》笔记(2)--保护模式

3408
来自专栏游戏杂谈

centos/linux 安装node.js

wget  http://www.python.org/ftp/python/2.7/Python-2.7.tar.bz2 tar jfvx Python-2...

922
来自专栏时序数据库专栏

Elasticsearch集群Shard Allocation机制

    Elasticsearch由一些Elasticsearch进程(Node)组成集群,用来存放索引(Index)。为了存放数据量很大的索引,Elastic...

1500
来自专栏DannyHoo的专栏

如何判断UITabBarController上的NavigationController没有被选中?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1411
来自专栏草根专栏

使用Identity Server 4建立Authorization Server (1)

本文内容基本完全来自于Identity Server 4官方文档: https://identityserver4.readthedocs.io/ 官方文档很详...

47910

扫码关注云+社区