Socket服务器端如何判断,客户端非正常断开?(100分)

  • 主题发起人 主题发起人 想飞的男孩
  • 开始时间 开始时间

想飞的男孩

Unregistered / Unconfirmed
GUEST, unregistred user!
我曾经在大富翁上看到过类似的文章,但是当时没有保存下来,现在想找找不到了:(
在google中也搜索了一些资料。

现在有一种方法,是服务器端不断的去ping客户端,但是有人反映该方法不好,有局限性,在有防火墙等情况下不能正确反映真实的网络状态。

如果是用控件的方法,也可以通过,查看状态值得知。

1问、现在我这边是用在C++Builder中API函数写的socket服务端,该如何得知。

2问、我的另外一个程序是,Vc写的dll实现socket服务器端程序,C++builder中调用Vc写的dll,消息处理部分,用回调函数的方法在C++Builder中实现。

回答第一问就给分,第二问,我再想想。
 
你可以采用握手机制来判断客户端的状态。
 
在客户端定期向服务器端发送“问候”信息,如果服务器端超过一定时间收不到客户端信息,判断客户端已经断开。不知道这样行否。
 
to 我的家园:
这个原理上好像确实可行,客户端不断发我还活着^_^

我也正在试验,如果实现了,一定和大家分享^_^
 
很简单啊,正常断开会发TCP标致,而不是的话那就是SOCKET_ERROR了,也称-1
 
后退
顶部