gpt4 book ai didi

c - 如何在不关闭套接字的情况下向主机发送 FIN 标志

转载 作者:IT王子 更新时间:2023-10-29 01:08:48 26 4
gpt4 key购买 nike

我已经编写了一个创建套接字的 C 代码,到目前为止它运行良好。在 TCP 的 RFC 中,我发现可以发送一个 FIN 标志来告诉其他主机我想退出或对话。 FIN 标志并不意味着其他主机无法发送更多数据。因此,在一个完美的世界中,我会发送 FIN 标志,而另一台主机知道我不想再说话了,他会发送其余数据,然后关闭。但是我怎样才能发送 FIN???close() 函数为我做这个或者更好地设置 linux 内核在他收起资源时做的事情。但是收起资源意味着我不能再使用 recv() 函数,因为当我调用 close() 函数时文件描述符被内核收起。那么如何才能读取其他主机可能希望在我的 FIN 标志之后发送的其余数据。我打赌有一个干净的解决方案

最佳答案

您想用 shutdown(s, SHUT_WR) 关闭套接字的写端.

The shutdown() call causes all or part of a full-duplex connection on the socket associated with sockfd to be shut down. If how is SHUT_RD, further receptions will be disallowed. If how is SHUT_WR, further transmissions will be disallowed. If how is SHUT_RDWR, further receptions and transmissions will be disallowed.

另见:

关于c - 如何在不关闭套接字的情况下向主机发送 FIN 标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27335779/

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