linux - 是否有必要关闭一个accept返回文件描述符

标签 linux sockets

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

  1. 服务器使用 socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) 创建一个 sockfd函数,
  2. 那么它bind sockfd 到本地 sockaddr 结构,
  3. 服务器accept客户端的连接,并返回一个clientfd
  4. 服务器和客户端 sendrecv消息

问题来了,第4步之后,是否需要手动关闭clientfd?

最佳答案

返回的clientfd是一个全新的文件描述符。如果您不关闭它,该文件描述符将会泄漏。

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

关于linux - 是否有必要关闭一个accept返回文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18173111/

相关文章:

c - 我如何检测我在 chroot() 环境中运行而不是 UID 0?

linux - 伪 block 驱动程序 : I have generated the device file for block driver using mknod

macos - 无法取消链接套接字文件/tmp/mongodb-27017.sock errno :13 Permission denied

sockets - SBCL 套接字 : reuse-address

无法评论//代码块

c# - 无法在 CentOS amd64 上执行二进制文件

python - Python 中的数据包嗅探器

c++ - 当没有互联网连接时,socket() 和 sendto() 不会返回错误代码

java - 客户端/服务器应用程序中的 UDP

c++ - libcurl 无法获取 CURLINFO_EFFECTIVE_URL