Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
因此,想象一下客户端从套接字读取并读取返回 0 的情况。这意味着 EOF 或服务器已关闭连接。
客户端是否也应该在这个文件描述符上调用 close ?如果客户端不调用 close 是否会导致某些文件描述符泄漏?
是的,您仍然需要关闭它。即使远程主机已关闭连接,该句柄仍存在于您的机器上。
您仍然可以引用套接字(在其上调用各种方法,包括read()即使连接本身已关闭。在您调用句柄后close(),句柄已完全消失,因此调用方法比简单地返回 0 更有可能导致分段错误。
read()
close()
要清楚。呼叫close()有两个动作。
因此,即使远程主机关闭了套接字,您仍然需要 close 来清理内存。