C# socket 断线重连

怎样使socket服务器和客户端失去联系之后客户端每几秒去连接一次服务器,只要连接成功了,客户端就可以自动登录,求程序源代码,注是C#的,有源码100全给C#socket... 怎样使 socket 服务器和客户端失去联系之后 客户端每几秒去连接一次服务器,只要连接成功了,客户端就可以自动登录,求程序源代码,注是 C# 的,有源码 100全给
C# socket 编程高手 帮帮忙吧。
最好给我 rar 压缩包 下载下来我自己可以研究
展开
 我来答
聊无无
推荐于2018-03-20 · TA获得超过1206个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:218万
展开全部
首先定义1个Timer作计时器,这个Timer可以作为全局变量
Timer Tm=new Timer();
设置Tm的触发间隔,这里是5000毫秒(5秒),然后让它停止
Tm.Interval = 5000;
Tm.stop();
下面你需要定义1个函数,重新连接用的函数。下面是1个例子
void ReConnect()
{
try{
//重新尝试连接
socket.connect("127.0.0.1",8888);
}
catch(SocketException Exp)
{
//在这里捕获异常,你可以做一些别的处理
//连接异常的时候,就是无法连接,你可以分析SocketException 确定无法连接原因,分别处理
//然后直接返回,5秒后继续尝试
return;
}

//如果连接成功了,先停止计时器
Tm.stop();
//然后调用你连接成功后所要执行的函数
}
别忘了在Tm的Tick事件中注册这个函数
Tm.Tick += new EventHandler(ReConnect);
最后就是在你检测到断线后激活这个计时器。
如果你是Send/Receive中捕获异常的,或者是定期发送心跳包的,可以这样
try
{
socket.send(buffer);
}catch(SocketException Exp)
{
//同样你可以分析SocketException 确定原因,确认是连接断开后处理,话说我忘了无效连接的
//SocketException 是什么了,自己到MSDN上查查看把

//捕获到了异常就把计时器打开
Tm.start();
//后面可以加点后续处理什么的
}
百度网友3f81184
2011-08-11 · TA获得超过272个赞
知道小有建树答主
回答量:525
采纳率:50%
帮助的人:160万
展开全部
既然你已经把连接做好的 那么断开时用一个定时控件去判断断开的时候重新连接就可以了呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钨丝灯m
2011-08-11 · 超过16用户采纳过TA的回答
知道答主
回答量:116
采纳率:0%
帮助的人:36.5万
展开全部
mark 下,周末回去帮你写一个
更多追问追答
追问
恩 万分感谢,最好有注释 ,谢谢了,
写好了,分都给你了 呵呵 谢谢啊
追答
Mark一下,周六写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
许萍琪BJ
2011-08-11
知道答主
回答量:38
采纳率:0%
帮助的人:10.4万
展开全部
你自己写么~ 放个时钟 判断客户端是否连接状态 如果断开连接后 就再连接呀~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式