gpt4 book ai didi

c - 如何检测 TCP 套接字断开连接(使用 C Berkeley 套接字)

转载 作者:可可西里 更新时间:2023-11-01 02:30:36 25 4
gpt4 key购买 nike

我正在使用循环从 c Berkeley 套接字中读取消息,但我无法检测到套接字何时断开连接,因此我会接受一个新连接。请帮忙

while(true) {
bzero(buffer,256);
n = read(newsockfd,buffer,255);
printf("%s\n",buffer);
}

最佳答案

检测套接字已连接的唯一方法是写入它。

read()/recv() 上出现错误将表明连接已断开,但在读取时不出现错误并不意味着连接已建立。

您可能有兴趣阅读以下内容: http://lkml.indiana.edu/hypermail/linux/kernel/0106.1/1154.html

此外,使用 TCP Keep Alive可能有助于区分不活动和断开的连接(通过定期发送一些内容,即使应用程序没有数据要发送)。

(编辑:删除了@Damon 指出的不正确的句子,谢谢。)

关于c - 如何检测 TCP 套接字断开连接(使用 C Berkeley 套接字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404008/

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