**:
在cs程式中,斷線重連應該是乙個常見的功能。
此處的斷線重連主要指的是伺服器端因為某種故障,伺服器端程式或者系統進行了重新啟動,客戶端能夠自動探測到伺服器端掉線,並嘗試重新進行連線
本程式基於來自英國的開源c#通訊框架的networkcomms(2.3.1版本)
先看一下效果
初始狀態:
當伺服器端程式關閉後,客戶端會自動探測到,並在客戶端顯示相關資訊
然後,我們設定為每隔5秒重連一次,可以自定義設定重連的次數,比如說重連50次,如果還沒有重連成功,則放棄重連
然後我們重新啟動伺服器端,客戶端會顯示重連成功.
具體步驟如下:
需要修改幾處networkcomms2.3.1通訊框架中的**
第一步:修改connectioninfo類的noteconnectionshutdown方法
該方法原來是:
internal voidnoteconnectionshutdown()view code
修改後為:
private bool reconnectflag = false;/// ///是否為重連線模式
///
public boolreconnectflag
set
}/// ///note this connection as shutdown
///
internal voidnoteconnectionshutdown()
}//新增狀態改變事件
public event eventhandlerstatechanged;
usingsystem;相關**usingsystem.collections.generic;
usingsystem.text;
usingnetworkcommsdotnet.tools;
namespacenetworkcommsdotnet
}public classstringeventargs : eventargs
public string text
} }
namespacesystem.runtime.compilerservices
}
第三步:在networkcomms靜態類中新增如下方法:
public static voidcleardic()如果您使用的是v3版本,**稍微變化:}
public static voidcleardic()v3客戶端**:}
usingsystem;客戶端**usingsystem.collections.generic;
usingsystem.componentmodel;
usingsystem.data;
usingsystem.drawing;
usingsystem.text;
usingsystem.windows.forms;
usingnetworkcommsdotnet;
usingdpsbase;
usingsystem.net;
usingsystem.threading;
//在窗體上顯示新資訊
void form_connectionstatusnotify(objectsender, stringeventargs e)
else
}private bool servernotifyclose = false;
public event eventhandlerconnectionstatusnotify;
void connnectioninfo_statechanged(objectsender, stringeventargs e)
catch(exception ex)}}
while (num }}
private void button1_click(objectsender, eventargs e)
//獲取水果相關資訊
private void button2_click(objectsender, eventargs e)
else
}private void form1_formclosing(objectsender, formclosingeventargs e)}}
伺服器端無需額外的設定。
Mina客戶端斷線重連
新建 實現mina的ioservicelistener介面 import org.apache.mina.core.service.ioservice import org.apache.mina.core.service.ioservicelistener import org.apache.mi...
metaq的客戶端自動斷線重連機制
1.metaq的資料傳輸基於gecko 3.remoteclient的連線語句如下 for int i 0 i conncount i catch final exception e 在連線建立時,會新建乙個定時任務,進行連線檢測,連線的 如下 override public void run ca...
C 使用TCPClient客戶端斷線重連伺服器
最近做模擬雷達推送資料的專案,用乙個軟體模擬幾百台雷達往後端推送資料,資料處理的 我就不貼了,主要是建立socket連線和斷線重連部分的 主要是針對服務端斷開連線後,客戶端這邊要重現伺服器。我是先從資料庫讀取資料,對資料封裝傳到後端,讀資料的時候用乙個list存放資料庫的雷達裝置名稱,根據裝置建立s...