gpt4 book ai didi

tcp - 为什么在 TCP 服务器程序中我们需要在 write() 之前先读()?

转载 作者:可可西里 更新时间:2023-11-01 02:55:50 25 4
gpt4 key购买 nike

根据我的理解,一个简单的 TCP 服务器将编码如下。

socket() - bind() - listen() - accept() - read() - write()

客户端会这样写。

socket() - bind()(可选) - connect() - write() - read()

请注意客户端和服务器程序之间调用 read() 和 write() 的顺序差异。

是否要求在服务器程序中始终在 write() 之前读取(),如果是,那么为什么?

谢谢,娜迦

最佳答案

这不是强制性的,但服务器在写入响应之前读取请求是有意义的。请注意,有必要经常读取两侧以防止分布式死锁:例如,如果两侧都试图写入而不是读取,那么中间的缓冲区将变满并且任何一方都无法写入继续。一种解决方案是有一个单独的线程,如果有东西要读取(这适用于客户端和服务器),它会继续读取。

关于tcp - 为什么在 TCP 服务器程序中我们需要在 write() 之前先读()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com