您的位置:首页 > 编程语言 > C#

c# socket 服务器端如何判断客户端掉线

2016-08-22 20:09 260 查看
c#中的Socket.Connected 不是指当前是否处于连接状态,而是指上一次收发是否完成,不是告诉你将来你收发是否能成功的。

下面是不用发包的检查办法

用Socket中的poll方法检查

static bool IsSocketConnected(Socket s)
{
return !((s.Poll(1000, SelectMode.SelectRead) && (s.Available == 0)) || !s.Connected);
}不过,如果客户端不是程序退出、电脑关机等正常断线方式,而且因为网线被拔等非正常断线,这种方法没有用。只能通过服务器定期向客户端来发包来检查的(心跳包)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: