select 函数的返回值

gary 2003-12-11 02:01:57
小弟正在写一个程序,连接delphi的服务器端,是用TCP的。当服务器程序退出后,客户端用来监听的select函数,一直都返回0,我怎么能知道是对端没有发包,还是对端停了。(除了定时发送hello包,有没有别的办法)
...全文
176 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gary 2003-12-15
  • 打赏
  • 举报
回复
给分了,看样子想偷懒还是不行,还是按传统做法,发hello包好了
hnhb 2003-12-12
  • 打赏
  • 举报
回复
程序中让对方离线时也发一个数据包
starcbh 2003-12-12
  • 打赏
  • 举报
回复
一直读,或用select啊……

取得close通知
fjyhs 2003-12-12
  • 打赏
  • 举报
回复
没错,每隔一段时间定时发一个包,我就是这样的
xiaoqiang123 2003-12-12
  • 打赏
  • 举报
回复
UP
glacier1213 2003-12-12
  • 打赏
  • 举报
回复
也可以采用路由器判断对方路由器离线的方法,每隔一段时间定时发一个包,如果连续三个时间段没收到包,就认为对方离线。这方法比对方离线时发一个'leave'包好,因为如果对方是突然意外死机或断电了,就没机会发包了,你这边还在‘痴痴地等'.
soundbug 2003-12-12
  • 打赏
  • 举报
回复
就是楼上的方法,对方离线时发一个数据包,比如'leave',你这边解析到这个后,就知道对方离线了
wangl 2003-12-11
  • 打赏
  • 举报
回复
没有搞过Tcp编程,只能帮你up

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧