社区
Linux/Unix社区
帖子详情
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
奔跑吧猴哥
2005-10-12 10:43:04
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
...全文
3936
22
打赏
收藏
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
在使用select() 函数时 怎样判断套接字连接状态(断开或连接)????
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cky41
2005-12-12
打赏
举报
回复
远程主机主动断开,select监视的socket马上会进入可读状态,然后会读到EOF(文件结束符)
如果是网线被拔(远程或是本地),哪只能通过超时判断了吧
wjlsmail
2005-10-26
打赏
举报
回复
Mark
LDD123
2005-10-26
打赏
举报
回复
拔掉网线导致无法通讯用select是监测不出的,
可以利用两边定时发心跳包来处理
LDD123
2005-10-26
打赏
举报
回复
如果FD_SET中的socket有数据或被断开的,会触发FD_SET中对应的读事件,
select会立刻返回,这时对这个socket进行recv,根据返回值是>0 =0就可
以判断是有数据还是连接被断开。
很土
2005-10-26
打赏
举报
回复
使用 select 函数后, 若是 Read 的 FDSet, 通过 FD_ISSET 判断是否收到信号, 若有信号则可以使用 recv(fd, @ch, 1, MSG_PEEK), 若接收尺寸为 0 则可以调用 close 关闭 socket
lirun
2005-10-21
打赏
举报
回复
异常中断,只能等待select超时,建议你使用send,recv函数族。
wohow
2005-10-13
打赏
举报
回复
有经验的人一看就知道你是怎么试的,可是你的测试涵盖多少环境?我只要举出一个反例就推翻你的结论,很遗憾,这个反例被我找到了。
奔跑吧猴哥
2005-10-12
打赏
举报
回复
TCP协义有判断超时的功能..在Windows下就有FD_CLOSE通知...
不知UNIX怎么处理????????
wohow
2005-10-12
打赏
举报
回复
单纯select函数做不到的。例如TCP连接上之后调用select,可是对方拔掉网线,select就监测不到。可以配合send试试。
奔跑吧猴哥
2005-10-12
打赏
举报
回复
回复人: tengulre(OpenSource) ( ) 信誉:100 2005-10-12 11:01:00 得分: 0
判断socket句柄是否大于0
----------------------------------------------------
socket句柄 在连接时就获得,怎么会改变呢???
yeehya
2005-10-12
打赏
举报
回复
判断是否连接正常,可以用一次通讯来测试,专门发送一个特定的包,等待一个特定的应答,只能这样老土吧.
yeehya
2005-10-12
打赏
举报
回复
faint,这个可以由自己定义的通讯协议来实现啊~
接受特定的命令类型,在client上在建立和退出时,发出相应的命令.如果是异常中断,只能通过超时来判断了吧.
是新手,能说的只有这些.
tengulre
2005-10-12
打赏
举报
回复
判断socket句柄是否大于0
奔跑吧猴哥
2005-10-12
打赏
举报
回复
难道没有高手???
chaolajiao
2005-10-12
打赏
举报
回复
vipiii 老兄, 你的方法很有效!
进来领分吧!!!!
http://community.csdn.net/Expert/topic/4322/4322297.xml?temp=8.353823E-02
vipiii
2005-10-12
打赏
举报
回复
to chaolajiao: 用strerror(errno)输出具体原因
^_^,wohow同志缺乏幽默感,就算我试错了,难道我不可以回这帖子么?
就算我不知道select的运行机制,难道我不可以回这帖子么?呵呵~
chaolajiao
2005-10-12
打赏
举报
回复
vipiii 真搞笑.
大家看看我的问题吧?
http://community.csdn.net/Expert/topic/4322/4322297.xml?temp=.993664 unix 下的socket 函数调用失败会写 errno. 哪位有 errno 的值 和 其对应意义 的 对照表???
vipiii
2005-10-12
打赏
举报
回复
很遗憾,我试过。
wohow
2005-10-12
打赏
举报
回复
vipiii(vipiii)有没有试过就说?知不知道select的运行机制?
vipiii
2005-10-12
打赏
举报
回复
对端断开时select会返回,有描述符可读。
这时read或recv会读到0字节。
要考虑超时和被中断的情况。
加载更多回复(2)
AIHawk:首款求职申请 AI 网络代理
求职助手AI智能代理AIHawk致力于简化求职过程,通过自动化职位申请流程。借助人工智能,它能够帮助用户以定制化的方式申请多个职位。
科技成果转化项目进场交易前,评估备案环节需要准备哪些材料?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
国央企如何系统识别外部创新资源?内部研发体系完善,但对外部高校、中小科技企业技术能力缺乏动态认知。.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
【高速互连技术】基于UIO机制的PCIe无序I/O扩展:多路径架构下内存请求的高性能传输与排序控制方案设计
内容概要:本文档为PCI-SIG发布的工程变更通知(ECN),介绍了名为“无序输入/输出(Unordered I/O, UIO)”的新功能,旨在解决传统PCI/PCIe架构中严格的顺序传输规则对多路径拓扑和高性能IO系统的限制。UIO基于Flit模式,定义了一套新的TLP(事务层包)类型和规则,允许请求方(Requester)自主管理数据顺序,支持多路径路由、提升系统效率并兼容现有生产者-消费者模型。文档详细说明了UIO
博客 下载 社区 AtomGit 模型市场 搜CSDN 搜索 AI 搜索 会员中心 创作中心 基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略研究(Simulink仿真实现)
内容概要:本文研究了基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略,旨在解决传统三电平逆变器存在的谐波含量高、电网不平衡工况适应性差及动态响应速度不足等问题。通过采用有源中点箝位(ANPC)三电平逆变器拓扑,结合双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术和电网电压前馈控制,构建了一套一体化的高性能并网控制体系。该体系不仅优化了逆变器的开关动作机制,改善了输出电压电流的谐波特性,而且通过精确的相位同步和扰动补偿,显著提高了系统的动态响应能力和抗扰性能。仿真结果显示,所提出的控制策略能有效降低并网谐波含量,提升锁相精度与系统动态稳定性,确保在复杂电网工况下的高质量稳定并网。 适合人群:具备一定电力电子基础知识和仿真技能的研发人员,尤其是从事新能源发电、储能系统、柔性输电等领域研究的专业人士。
使用
场景及目标:①研究和开发高性能并网逆变器,特别是针对大功率、高电能质量要求的应用场景;②探索如何通过先进的调制和控制策略来提高并网逆变器对电网扰动的适应性和响应速度;③为相关领域的学术研究和技术开发提供理论依据和实践指导。 阅读建议:建议读者结合实际的仿真软件(如MATLAB/Simulink)进行实践操作,以便更好地理解和掌握文中提到的各种控制策略的具体实现方法。同
时
,鼓励读者关注最新的研究成果和发展趋势,不断深化对该领域的认识。
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章