gpt4 book ai didi

c - 当客户端断开连接时,选择调用设置服务器的套接字

转载 作者:行者123 更新时间:2023-11-30 14:52:02 26 4
gpt4 key购买 nike

我正在使用 C 语言处理具有多个客户端的服务器,并注意到一件事:每当客户端与服务器断开连接时(服务器只是在客户端的文件描述符上调用 close ),就会执行 select 调用(我使用 select 来处理来自多个客户端的消息)将服务器的套接字设置为可供读取,并且调用的返回值为 0。忽略此事实会阻塞服务器,因为 select 会在服务器套接字设置为就绪时不断返回 0,而不是等待其他套接字。在某人断开连接之后、服务器可以接受新连接之前,是否需要对服务器套接字进行一些额外的清理?

最佳答案

当您的服务器从 recv() 获取 0 或 -1 时,它应该在该套接字上调用 close,进一步应确保该套接字从传递给 的读写 fdset 中删除select() 否则 select() 将返回错误,表明其读/写 fdset 中存在错误的 fd

关于c - 当客户端断开连接时,选择调用设置服务器的套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47809276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com