是否需要关闭接受返回文件描述符

时间:2013-08-11 14:43:02

标签: linux sockets

正如标题所说,在tcp连接示例中

  1. 服务器使用socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)函数创建一个sockfd,
  2. 然后将bind sockfd发送到本地sockaddr结构,
  3. 服务器accept客户端的连接,并返回clientfd
  4. 服务器和客户端sendrecv消息
  5. 这是问题,在步骤4之后,是否有必要通过手动关闭clientfd?

1 个答案:

答案 0 :(得分:1)

返回的clientfd是一个全新的文件描述符。如果你没有close它,那个文件描述符就会泄漏。

所以,是的,您应该总是 close来自accept的返回文件描述符。请注意,shutdown不会关闭文件描述符,它只是阻止它用于进一步的通信。