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();
//後面可以加點後續處理什麽的
}