栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java网络:在套接字中解释InputStream和OutputStream

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java网络:在套接字中解释InputStream和OutputStream

套接字是一种抽象概念,可用于与网络上的某些事物进行通信。见下图…

在Java中,要通过套接字发送数据,您需要从中获得

OutputStream
(1),然后写入
OutputStream
(输出一些数据)。

要从套接字读取数据,请获取其

InputStream
,然后从第二个流中读取输入。

您可以将这些流视为连接到墙上插座的 一对单向 管道。在墙的另一侧发生的事情不是您的问题!

在您的情况下,服务器具有另一个套接字(连接的另一端)和另一对流。它使用

InputStream
(2)从网络读取数据,并使用
OutputStream
(3)通过网络将
相同的 数据写回到您的客户端,客户端通过
InputStream
(4)完成往返来再次读取数据。

      Client         Server1. OutputStream -->    /--> 2. InputStream -->         Socket <--> network <--> ServerSocket |4. InputStream  <--/    <--3. OutputStream <--

更新: 回复评论:

请注意,流和套接字仅发送原始字节。在这种抽象级别上,他们没有“消息”的概念。因此,如果您发送X个字节和另外X个字节,然后读取X个字节并读取另一个X个字节,则系统的行为就好像有两条消息一样,因为这就是您将字节分割的方式。

如果您发送X个字节,再发送另外X个字节,然后读取长度为2X的答复,那么您 也许
可以读取单个组合的“消息”,但是正如您已经注意到的,流的基础实现可以选择何时交付大块字节,因此它可能返回X字节,然后再返回X字节,或者一次返回2X,或者四次返回0.5X



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428200.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号