概念:
長連接是指在一個TCP連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包连躏,在TCP連接保持期間石景,如果沒有數(shù)據(jù)包發(fā)送更舞,需要雙方發(fā)檢測包以維持此連接畦幢,一般需要自己做在線維持。
短連接是指通信雙方有數(shù)據(jù)交互時缆蝉,就建立一個TCP連接宇葱,數(shù)據(jù)發(fā)送完成后瘦真,則斷開此TCP連接,一般銀行都使用短連接黍瞧。比如http的吗氏,只是連接、請求雷逆、關閉弦讽,過程時間較短,服務器若是一段時間內沒有收到請求即可關閉連接。
其實長連接是相對于通常的短連接而說的膀哲,也就是長時間保持客戶端與服務端的連接狀態(tài)往产。
長連接與短連接的操作過程
通常的短連接操作步驟是:連接→數(shù)據(jù)傳輸→關閉連接;
而長連接通常就是:連接→數(shù)據(jù)傳輸→保持連接(心跳)→數(shù)據(jù)傳輸→保持連接(心跳)→……→關閉連接某宪;這就要求長連接在沒有數(shù)據(jù)通信時仿村,定時發(fā)送數(shù)據(jù)包(心跳),以維持連接狀態(tài)兴喂,短連接在沒有數(shù)據(jù)傳輸時直接關閉就行了
什么時候用長連接蔼囊,短連接?
長連接多用于操作頻繁衣迷,點對點的通訊畏鼓,而且連接數(shù)不能太多情況。每個TCP連接都需要三步握手壶谒,這需要時間云矫,如果每個操作都是先連接,再操作的話那么處理速度會降低很多汗菜,所以每個操作完后都不斷開让禀,次處理時直接發(fā)送數(shù)據(jù)包就OK了,不用建立TCP連接陨界。例如:數(shù)據(jù)庫的連接用長連接巡揍,如果用短連接頻繁的通信會造成socket錯誤,而且頻繁的socket創(chuàng)建也是對資源的浪費菌瘪。