【c#源码】基于TCP通信的客户端断线重连
2015-02-28 14:01
706 查看
源码下载在CS程序中,断线重连应该是一个常见的功能。此处的断线重连主要指的是服务器端因为某种故障,服务器端程序或者系统进行了重新启动,客户端能够自动探测到服务器端掉线,并尝试重新进行连接本程序基于来自英国的开源c#通信框架的networkcomms(2.3.1版本)先看一下效果初始状态:
当服务器端程序关闭后,客户端会自动探测到,并在客户端显示相关信息
然后,我们设定为每隔5秒重连一次,可以自定义设置重连的次数,比如说重连50次,如果还没有重连成功,则放弃重连
然后我们重新启动服务器端,客户端会显示重连成功.
具体步骤如下:需要修改几处NetworkComms2.3.1通信框架中的代码第一步:修改ConnectionInfo类的NoteConnectionShutdown方法该方法原来是:
View Code
修改后为:
第二步:在NetworkComms库类中添加相关的代码如下:
相关代码
第三步:在NetworkComms静态类中添加如下方法:
如果您使用的是V3版本,代码稍微变化:
V3
客户端代码:
客户端代码
服务器端无需额外的设置。至此,我们的工作已经完成。祝大家工作顺利 www.networkcomms.cn
当服务器端程序关闭后,客户端会自动探测到,并在客户端显示相关信息
然后,我们设定为每隔5秒重连一次,可以自定义设置重连的次数,比如说重连50次,如果还没有重连成功,则放弃重连
然后我们重新启动服务器端,客户端会显示重连成功.
具体步骤如下:需要修改几处NetworkComms2.3.1通信框架中的代码第一步:修改ConnectionInfo类的NoteConnectionShutdown方法该方法原来是:
View Code
修改后为:
private bool reconnectFlag = false; /// <summary> /// 是否为重连接模式 /// </summary> public bool ReconnectFlag { get { return reconnectFlag; } set { reconnectFlag = value; } } /// <summary> /// Note this connection as shutdown /// </summary> internal void NoteConnectionShutdown() { lock (internalLocker) ConnectionState = ConnectionState.Shutdown; //添加以下代码 初始状态为False 触发连接状态改变事件 if (reconnectFlag == false) { StateChanged.Raise(this, new StringEventArgs("连接出现异常")); } } //添加状态改变事件 public event EventHandler<StringEventArgs> StateChanged;
第二步:在NetworkComms库类中添加相关的代码如下:
相关代码
第三步:在NetworkComms静态类中添加如下方法:
public static void ClearDic() { lock (globalDictAndDelegateLocker) { allConnectionsById.Clear(); allConnectionsByEndPoint.Clear(); oldNetworkIdentifierToConnectionInfo.Clear(); } }
如果您使用的是V3版本,代码稍微变化:
V3
客户端代码:
客户端代码
服务器端无需额外的设置。至此,我们的工作已经完成。祝大家工作顺利 www.networkcomms.cn
相关文章推荐
- 【c#源码】基于TCP通信的客户端断线重连
- 【c#源码】基于TCP通信的客户端断线重连
- 基于TCP通信的客户端断线重连
- 基于TCP网络通信的自动升级程序源码分析-客户端请求服务器上的升级信息
- 基于TCP网络通信的自动升级程序源码分析-客户端连接服务器
- 基于TCP网络通信的自动升级程序源码分析-客户端连接服务器
- 【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件
- 基于TCP网络通信的自动升级程序源码分析-客户端连接服务器
- C#基于TCP&UDP实现服务器与多个客户端之间的通信(客户端之间直接通信,不靠服务器端转发消息)
- [c#源码分享]客户端程序通过TCP通信传送"小文件"到服务器
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件
- 【c#源码】安卓客户端通过TCP通信与Windows服务器进行文件传输
- 【开源下载】基于TCP网络通信的自动升级程序c#源码
- 基于TCP网络通信的自动升级程序源码分析-客户端接收文件
- 【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
- 基于TCP网络通信的自动升级程序源码分析-客户端请求服务器上的升级信息
- C# 基于TcpListener和TcpClient的客户端服务端通信
- 【开源下载】基于TCP网络通信的自动升级程序c#源码
- 基于Tcp通信的聊天程序微风IM(c#开源) -技术分析(三) 客户端下线