因此,想象一下客户端从套接字读取并读取返回0的情况。这意味着EOF或服务器已关闭连接。
客户端是否也应该在此文件描述符上调用close?如果客户端没有调用close会导致一些文件描述符泄漏吗?
答案 0 :(得分:2)
是的你还需要关闭它。即使远程主机已关闭连接,手柄也存在于您的计算机上。
您仍然可以引用套接字(即使连接本身已关闭,也可以调用其中的各种方法,包括read()
。在您调用close()
后,句柄已完全消失,因此调用方法的可能性更大引起分段错误而不是简单地返回0。
要清楚。调用close()
有两个动作。
因此,即使远程主机关闭套接字,您仍需要关闭以清理内存。