正如标题所说,在一个tcp连接示例中
- 服务器使用
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)
创建一个 sockfd函数, - 那么它
bind
sockfd 到本地 sockaddr 结构, - 服务器
accept
客户端的连接,并返回一个clientfd - 服务器和客户端
send
或recv
消息
问题来了,第4步之后,是否需要手动关闭clientfd?
最佳答案
返回的clientfd
是一个全新的文件描述符。如果您不关闭
它,该文件描述符将会泄漏。
所以,是的,您应该始终关闭
从accept
返回的文件描述符。请注意,shutdown
不会关闭文件描述符,它只是阻止它用于进一步的通信。
关于linux - 是否有必要关闭一个accept返回文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18173111/