gpt4 book ai didi

c - shutdown(2) 系统调用对我不起作用;我不确定我做错了什么

转载 作者:太空宇宙 更新时间:2023-11-04 04:05:10 25 4
gpt4 key购买 nike

我正在试验 shutdown(2) 系统调用。根据手册,它做了我想要的。当我以下列方式在 TCP 服务器中调用它时:

shutdown(clntSocket, SHUT_RDWR)

那么客户端必须能够观察到 TCP 连接已关闭。我想,这意味着客户必须能够注意到无法发送/接收更多数据。这是我无法证实的理论。

在此simple experiment我定义了一个 TCP 服务器和一个 TCP 客户端。服务器从客户端接收到 3 个字节,然后调用 shutdown(2)。客户端发送 3 个字节,随后发送另外 3 个字节。两个发送操作都成功。第二次发送操作不应该失败吗?

在此先感谢您的帮助。

最佳答案

发送操作成功仅表示数据已排队等待发送。这并不意味着它实际上已发送或接收。在调用shutdown 之后,如果您想确认另一端是否已完成其关闭过程的一部分,您可以调用read。一旦 read 返回零或错误,您就知道连接已关闭。

关于c - shutdown(2) 系统调用对我不起作用;我不确定我做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910601/

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