天天看點

socket通信中的長連接配接和短連接配接

轉自:https://blog.csdn.net/javajxz008/article/details/50468134

更加詳細的分析:https://www.cnblogs.com/xujiming/p/5448721.html

一般的socket通信過程:

           建立連接配接

①用戶端----------------服務端

           通訊

②用戶端----------------服務端

           斷開連接配接

③用戶端----------------服務端

在一次TCP通訊中,先通過三次握手建立連接配接,用戶端和服務端建立連接配接,進行資料的讀取和操作。然後通過四次握手斷開連接配接。

但是,在實際的操作過程中,有很多場景需要進行高并發的通訊。

TCP每次連接配接需要消耗資源,不能老是斷了連,連了斷,這樣是很消耗資源的。在一些操作頻繁,并發數不是很多的點到點的情況下(長時間連接配接也是消耗資源的),适合使用長連接配接。在一些操作不是很頻繁,并發數不是很多的情況下,一點對多點的情況下,适合使用短連接配接。

長連接配接:用戶端和服務端在進行一次TCP連接配接之後,不會立刻斷開。還會在後續為資料提供讀寫服務。用戶端和服務端采用心跳保持連接配接。在所有的資料讀寫完成之後,斷開連接配接。

短連接配接:建立連接配接-----通訊-------斷開連接配接。通訊後立馬斷開連接配接,釋放資源。