加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何同步读取和写入套接字?

发布时间:2020-12-15 01:12:18 所属栏目:Java 来源:网络整理
导读:我们创建一个套接字.在套接字的一侧,我们有一个“服务器”,另一边有一个“客户端”.服务器和客户端都可以写入和读取套接字.这是我的理解.我不明白以下事项: 如果服务器从套接字读取,它是否只在套接字中看到客户端写入套接字的那些东西?我的意思是如果服务

我们创建一个套接字.在套接字的一侧,我们有一个“服务器”,另一边有一个“客户端”.服务器和客户端都可以写入和读取套接字.这是我的理解.我不明白以下事项:

>如果服务器从套接字读取,它是否只在套接字中看到客户端写入套接字的那些东西?我的意思是如果服务器向套接字写入内容而不是从套接字读取,它(服务器)是否会在套接字中看到它(服务器)在那里写的内容?我希望不是.
>让我们考虑以下情况.客户端向套接字写入内容,然后将新内容写入套接字,然后服务器从套接字读取.服务器会在那里看到什么?只有客户写的“新”东西或“新”和“旧”的东西?
>如果客户端(或服务器)写入套接字,是否可以查看其他方是否收到了书面信息?例如out.println(“Hello,Server!”)将返回true,服务器收到此消息.

最佳答案
套接字连接表示两个单向流:一个从客户端到服务器,一个从服务器到客户端.

每一方都可以将数据放入一个流中并从另一个流中读取.

放入一个流的数据将附加到已存在的数据的末尾.

当从流的一端读取数据时,将读取可用的最旧数据(即,流是FIFO).

这些陈述应该使您能够回答所有问题,但我也会明确说明:

>服务器只会读取客户端编写的内容,而不会读取自己编写的内容
>服务器将首先读取旧的东西,然后读取新的东西
>除非服务器发送响应内容,否则客户端无法立即知道数据是否实际被另一方接收.在某些情况下,它可以知道发送是否失败(例如,当客户端存在物理问题时),但通常不能依赖于那里的通知.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读