在退出服务器之前我应该在 fds 上调用 shutdown() 吗?

问题描述 投票:0回答:1

当服务器收到终止信号时,它会退出 select() 正在监视集合 (fd_set) 中的 fd 的循环。

是否有必要查看 fds 并调用 shutdown(fd, SHUT_RDWR) 是否还有它们在集合中?或者我应该调用 close(fd) 吗?

c server file-descriptor shutdown posix-select
1个回答
1
投票

无需在

shutdown()
之前调用
close()
。当您关闭套接字时,它会在两个方向上自动关闭。

如果出于某种原因需要保持套接字打开,通常只需要使用

shutdown()
。这可以在请求结束由 EOF 指示的协议中完成;您调用
shutdown(fd, SHUT_WR)
发送 EOF,然后读取响应。

© www.soinside.com 2019 - 2024. All rights reserved.