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);
}不过,如果客户端不是程序退出、电脑关机等正常断线方式,而且因为网线被拔等非正常断线,这种方法没有用。只能通过服务器定期向客户端来发包来检查的(心跳包)
下面是不用发包的检查办法
用Socket中的poll方法检查
static bool IsSocketConnected(Socket s)
{
return !((s.Poll(1000, SelectMode.SelectRead) && (s.Available == 0)) || !s.Connected);
}不过,如果客户端不是程序退出、电脑关机等正常断线方式,而且因为网线被拔等非正常断线,这种方法没有用。只能通过服务器定期向客户端来发包来检查的(心跳包)
相关文章推荐
- C# Socket服务器端如何判断客户端断开求解
- C# Socket服务器端如何判断客户端断开
- c#如何使用socket发送一条记录再接收一条记录,服务器端及客户端如何编写,初学。。最好有代码,谢谢!
- 如何判断socket客户端断开
- 请教如何改善C#中socket通信机客户端程序的健壮性_C#教程
- 服务器端如何判断客户端是不是手机
- C# Socket编程完成控制台服务器端和web客户端(调试通过)
- C#服务端判断客户端socket是否已断开的方法
- C#实现的Socket服务器端、客户端代码分享
- android 客户端 C#服务器端 socket 通信
- 服务器端如何判断客户端是不是手机
- 请教如何改善C#中socket通信机客户端程序的健壮性_C#教程
- 服务器端如何管理很多个客户端的socket连接?
- 关于socket编程中服务器端如何检测客户端连接断开的问题
- 基于C#的socket编程的TCP异步实现 ,包含服务器端与客户端源代码
- Socket 编程经验谈---如何处理socket连接后服务器端或客户端的断开
- 如何处理socket连接后服务器端或客户端的断开
- Socket 编程经验谈---如何处理socket连接后服务器端或客户端的断开
- 服务器端如何判断客户端是不是手机
- 请教如何改善C#中socket通信机客户端程序的健壮性