當前位置:編程學習大全網 - 源碼下載 - C# socket 斷線重連

C# socket 斷線重連

首先定義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();

//後面可以加點後續處理什麽的

}

  • 上一篇:網站怎麽推廣阿?
  • 下一篇:誰能告訴我 什麽是博客呵
  • copyright 2024編程學習大全網