社区
Java EE
帖子详情
java socket.getInputStream() 是调用一次还是多次
qq_37591637
2019-09-26 08:32:46
作用
socket.getInputStream()是获取输入流
疑问
如果输入流里面数据读取结束,一段时间后新数据来了,请问是In.read()直接读取还是需要重新获取输入流?
输入流是只需要创建一次,以后有数据就会进入输入流,还是每次有数据来都会调用socket.getInputStream()?
...全文
558
2
打赏
收藏
java socket.getInputStream() 是调用一次还是多次
作用 socket.getInputStream()是获取输入流 疑问 如果输入流里面数据读取结束,一段时间后新数据来了,请问是In.read()直接读取还是需要重新获取输入流? 输入流是只需要创建一次,以后有数据就会进入输入流,还是每次有数据来都会调用socket.getInputStream()?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
重庆一码农
2019-09-27
打赏
举报
回复
只要socket没有手动关闭或异常关闭的情况下 里面的输入流和输出流都只用取一次就可以循环的执行读写操作,但是注意读写操作完成不要关闭流,关闭的话socket就失效了 需要重新建立socket连接.
瘦死的黑骆驼
2019-09-26
打赏
举报
回复
不需要重新获取,获取一次就行了,然后从inputStream中不停的循环读取就好了,read这个方法是阻塞式的,没有数据的时候会阻塞在那里,等有数据来了就会再次执行了。
socket
.get
InputStream
()阻塞,
socket
.shutdownOutput()
服务端或者客户端,使用
socket
.get
InputStream
() 接收数据不管客户端还是服务端,
socket
在读取数据时,如果对方输出流没有断开,则 get
InputStream
() 一直处于接收状态,造成阻塞 总结 点击参考总结
【
JAVA
课设】--
Socket
实现实时通信
最近学期末了,
Java
要求做一个课程设计,需要用
Java
网络编程、JDBC、SWT进行设计。研究了 很久之后终于在各路大佬的指引下成功完工。根据在计网学习的知识,通信大致分为两种,用
Socket
,Server
Socket
类实现的TCP服务,和用Datagram
Socket
类实现的UDP通信服务。详细代码使用可以参考这位大佬的文章。
Java
网络编程_ZaynFox的博客-CSDN博客_
java
网络编程首先来说一下如何使用
Socket
,Server
Socket
类实现的TCP服务。...
Socket
类的get
InputStream
方法与getOutputStream方法的使用
Socket
类的get
InputStream
方法与getOutputStream方法的使用 客户端上的使用 get
InputStream
方法可以得到一个输入流,客户端的
Socket
对象上的get
InputStream
方法得到输入流其实就是从服务器端发回的数据。 getOutputStream方法得到的是一个输出流,客户端的
Socket
对象上的getOutputStream方法得到的输出流其实...
socket
inputstream
read
我们在写输入输出流中经常是以循环读取到-1作为结束符。 这个在文件的读写中,是没有问题的,很显然文件有结束符。 这个在
socket
通讯中,是有问题的,
socket
.get
InputStream
().read(buffer)这个函数,会处于阻塞状态,继续等待对方发数据过来。显然不可能中断,即使发一个-1,read也会把-1当作一个值读出来,循环仍将继续。 网上有一个解决方法:利用socke
Socket
的输入流
InputStream
阻塞问题
项目场景: 使用
Socket
中的输入流
InputStream
的时候,用了while循环判断当读出数据等于-1时停止循环。
InputStream
inputStream
=
socket
.get
InputStream
(); byte[] b = new byte[1024]; int len=0; while((len=
inputStream
.read(b))!=-1){ System.out.println(new String(b,0,len)); } 原因分析:
Socket
中的输入流Inp
Java EE
67,514
社区成员
225,878
社区内容
发帖
与我相关
我的任务
Java EE
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
复制链接
扫一扫
分享
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章