问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断TcpClient已断开连接

发布网友 发布时间:2022-05-16 01:25

我来回答

1个回答

热心网友 时间:2023-10-08 16:38

Socket在连接以后,如果客户端非正常退出,比如网线掉了、超时退出等,服务器端的socket仍然有缓存,此时可以从该socket描述符中读出一些数据,短时间内甚至可以写,因此判断TCP socket是否断开及其不易,网上有很多方法,都不能精确判断。本人用select和recv写了一个,在缓冲区被读完以后判断非常管用。这里,recv时使用MSG_PEEK参数,数据不会从缓冲区中清除掉,因此不会影响正常的读写。 /* check whether socket is connected. Actually, it is not accurate if the client * crashs and the server don't know about it because the socket buffer is ready. * So the return value '0' doesn't mean the socket is really valid. Of course, * '-1' shows the socket is invalid*/int checksock(int s){fd_set fds; char buf[2]; int nbread; FD_ZERO(&fds); FD_SET(s,&fds); if ( select(s+1, &fds, (fd_set *)0, (fd_set *)0, NULL) == -1 ) { //log(LOG_ERR,"select(): %s\n",strerror(errno)) ;return -1;}if (!FD_ISSET(s,&fds)) { //log(LOG_ERR,"select() returns OK but FD_ISSET not\n") ;return -1;}/* read one byte from socket */
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 排版打印 a4纸上怎么排成这样的格式啊 C#的TCPClient怎样获取接收到的数据长度 C# TcpClient 错误:无法从传输连接中读取数据: 由于连接方在一段时间后没有正确答复或连接的主机没有 C#TcpClient客户端怎么在发送时接收 c#网络编程中tcpListener和tcpClient的用法 怎么排版打印出来的是书的形式 打印书稿,如何排版? 油价上涨,中石油,中石化股价为什么还在下跌? 油价这么便宜,民间炼油厂都赚钱,中石油石化为什么亏损这么多? 计算机信息管理专业自考本科,要考多少门,谁知道,我现在七月份马上考中国近代史和软件开发,还有哪些科 高自考 实践课 考试难吗?比如软件开发工具(实践)C++程序设计(实践)数据库系统原理(实践) 谢谢 自考 软件开发工具 这门课 哪里有培训 软件开发工具 实践 如何在PS中让字底下有图片。类似小青菀这种。麻烦一步步说的细一点。 有谁参加过自考本科计算机信息管理专业的C++程序设计(实践)和软件开发工具(实践)考试啊? PS怎么在字里镶嵌相片 哪位可以帮我找到04年上半年高等教育自学考试的管理系统计算机应用试题的答案啊 有自考东北财经大学计算机信息管理的童鞋吗? 我报了三门实践课考试。数据库原理,C++,软件开发工具。 则猫的名字有什么感悟? PS图片显示在字中 .net 的 TCPClient 的 .Close 、 .Client.Close 和 .Client.Shutdown 有什麼不同? c# TcpClient的Connect阻塞卡界面怎么办 C#Socket与TcpListener,TcpClient和UdpClient的区别及联系 怎样退订30元冰淇淋超级会员套餐 TcpClient t = new TcpClient(AddressFamily.InterNetwork); 关于delphi7 IdTCPClient接收数据的问题 TIdTCPClient怎样才能读取接收到的数据 相逢曾相识 作者:水水双鱼 求小说相逢不相识txt下载 相逢不相识的句子 求小说《相逢不相识(相逢曾相识系列之四)》作者:水水双鱼 相逢不相识的前一句 求相逢曾相识系列TXT 水水双鱼的 663568014@QQ.COM 冲风振河朔,飞雾失太行。相逢不相识,下马须眉黄。《赏析》 风雨萧萧已断魂。犹胜相逢不相识,形容变尽语音存 《老相逢》 相思不如相见好,何时相见何时老。若待相逢不相识,悲风吹尽人寂寥! 人间无处话情悄,面似 昨日一场两相依今日相逢不相识不如柳枝犹可以一度春风一首诗打小动物 莫道相逢不相识的意思? 借一万块,分三个月,利息多少? 纵使脸蛋再美,也是相逢不相识,这句话该怎么回复?