如果連線不成功,應該在5-8s內做出回應。但是並不能確定一定是連線字串出錯。如果大量人訪問的話,很可能會出現等待時間超過5s的情況。而且,如果連線不成功,我們依舊最起碼得等待5秒。等待的滋味是不好受的,使用者一定會給你乙個叉叉,所以我們還需要用其他辦法來快速判斷。
這裡我們用socket來實現這一功能。(至於socket是什麼,有興趣的朋友可以自己查查資料)
先用socket來判斷與伺服器是否連線成功,然後在進行資料庫操作。
#region 採用socket方式,測試伺服器連線
///
/// 採用socket方式,測試伺服器連線
///
/// 伺服器主機名或ip
/// 埠號
///
public static bool testconnection(string host, int port, int millisecondstimeout)
catch (exception e)
finally }
#endregion
//該**片段來自於:
下面是資料庫的操作,可以根據自己的情況修改。
///
/// 資料庫連線操作,可替換為你自己的程式
///
/// 連線字串
///
private static bool testconnection(string connectionstring)
catch (exception ex)
return result;
} //該**片段來自於:
我這裡用winform來測試的。
private void btnsocket_click(object sender, eventargs e)
else
messagebox.show("socket link failed","連線伺服器");
} //該**片段來自於:
用socket來測試是否連線到伺服器非常方便,也非常快捷,不用讓使用者等待那麼長時間,而且這樣做還可以知道是伺服器位址出錯,還是資料庫出錯。經測試,如果資料庫位址出錯,在1-3s內即可反饋出結果。提示使用者「socket link failed」。而資料庫名錯誤,則只提示「sql link failed」。
這麼方便、快捷、高效、易排錯的方法,你會不會錯過,我不知道,反正我是不會錯過了!
用Socket快速判斷資料庫連線
大家在做專案的時候,一般都是和資料庫有關的。而相信許多人在用 開啟資料庫的時候,沒有判斷資料庫連線是否成功。如果寫對了還好,但是出錯了,會等老長時間 預設15s,不過實際響應可能會更長 而且還會出現卡死的情況,給使用者的感覺就會變得非常差勁。所以快速判斷資料庫連線是否成功,就顯得尤為重要了。如果連線...
c 通過socket判斷伺服器連線是否正常
判斷socket是否連線上,需要通過發包來確認。之前確認都是呼叫呼叫socket的connected屬性,然而該屬性是上次的連線是否成功的結果,不及時。檢查乙個socket是否可連線 private bool issocketconnected socket client catch sockete...
C 通過socket實現UDP 通訊
接下來我們通過乙個簡單的程式看一下udp通訊的過程。服務端程式 using system using system.collections.generic using system.linq using system.text using system.threading.tasks using s...