其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。
連線→資料傳輸→關閉連線;
這就要求長連線在沒有資料通訊時,定時傳送資料報(心跳),以維持連線狀態,短連線在沒有資料傳輸時直接關閉就行了
長連線多用於操作頻繁,點對點的通訊,而且連線數不能太多情況,。每個tcp連線都需要三步握手,這需要時間,如果每個操作都是先連線,再操作的話那麼處理速度會降低很多,所以每個操作完後都不斷開,次處理時直接傳送資料報就ok了,不用建立tcp連線。例如:資料庫的連線用長連線, 如果用短連線頻繁的通訊會造成socket錯誤,而且頻繁的socket 建立也是對資源的浪費。
而像web**的http服務一般都用短鏈結,因為長連線對於服務端來說會耗費一定的資源,而像web**這麼頻繁的成千上萬甚至上億客戶端的連線用短連線會更省一些資源,如果用長連線,而且同時有成千上萬的使用者,如果每個使用者都占用乙個連線的話,那可想而知吧。所以併發量大,但每個使用者無需頻繁操作情況下需用短連好。
總之,長連線和短連線的選擇要視情況而定。
報文傳送和接收是同步進行,既報文傳送後等待接收返回報文。 同步方式一般需要考慮超時問題,即報文發出去後不能無限等待,需要設定超時時間,超過該時間傳送方不再等待讀返回報文,直接通知超時返回。
在長連線中一般是沒有條件能夠判斷讀寫什麼時候結束,所以必須要加長度報文頭。讀函式先是讀取報文頭的長度,再根據這個長度去讀相應長度的報文。
單工、半雙工和全雙工
根據通訊雙方的分工和訊號傳輸方向可將通訊分為三種方式:單工、半雙工與全雙工。在計算機網路中主要採用雙工方式,其中:區域網採用半雙工方式,都會網路和廣域網採用全雙年方式。 1. 單工(******x)方式:通訊雙方裝置中傳送器與接收器分工明確,只能在由傳送器向接收器的單一固定方向上傳送資料。採用單工通訊的典型傳送裝置如早期計算機的讀卡器,典型的接收裝置如印表機。 2. 半雙工(half duplex)方式:通訊雙方裝置既是傳送器,也是接收器,兩台裝置可以相互傳送資料,但某一時刻則只能向乙個方向傳送資料。例如,步話機是半雙工裝置,因為在乙個時刻只能有一方說話。 3. 全雙工(full duplex)方式:通訊雙方裝置既是傳送器,也是接收器,兩台裝置可以同時在兩個方向上傳送資料。例如,**是全雙工裝置,因為雙方可同時說話。
長連線與短連線
通常短連線是這樣 連線 傳輸資料 關閉連線 那什麼是長連線?一般長連線相對短連線而言的,長連線在傳輸完數後不關閉連線,而不斷的傳送包保持連線等待處理下乙個資料報。such as 連線 傳輸資料 保持連線 傳輸資料 關閉連線。那什麼時候用短連線呢?一般長連線用於少數client end to serv...
長連線與短連線
短連線是指通訊雙方有資料互動時,就建立乙個tcp連線,資料傳送完成後,則斷開此tcp連線,一般銀行都使用短連線。比如http的,只是連線 請求 關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉連線。其實長連線是相對於通常的短連線而說的,也就是長時間保持客戶端與服務端的連線狀態。通常的短連...
長連線與短連線
http的長連線和短連線實質上是tcp長連線和短連線。http是應用層協議,在傳輸層使用tcp層,在網路層使用ip協議。ip協議主要解決網路路由和定址問題,tcp協議主要解決如何在ip層之上可靠的傳遞資料,使得網路上接收端收到傳送端所發出的所有包,並且順序傳送順序一致。tcp協議是可靠的 面向連線的...