轉自:https://blog.csdn.net/javajxz008/article/details/50468134
更加詳細的分析:https://www.cnblogs.com/xujiming/p/5448721.html
一般的socket通信過程:
建立連接配接
①用戶端----------------服務端
通訊
②用戶端----------------服務端
斷開連接配接
③用戶端----------------服務端
在一次TCP通訊中,先通過三次握手建立連接配接,用戶端和服務端建立連接配接,進行資料的讀取和操作。然後通過四次握手斷開連接配接。
但是,在實際的操作過程中,有很多場景需要進行高并發的通訊。
TCP每次連接配接需要消耗資源,不能老是斷了連,連了斷,這樣是很消耗資源的。在一些操作頻繁,并發數不是很多的點到點的情況下(長時間連接配接也是消耗資源的),适合使用長連接配接。在一些操作不是很頻繁,并發數不是很多的情況下,一點對多點的情況下,适合使用短連接配接。
長連接配接:用戶端和服務端在進行一次TCP連接配接之後,不會立刻斷開。還會在後續為資料提供讀寫服務。用戶端和服務端采用心跳保持連接配接。在所有的資料讀寫完成之後,斷開連接配接。
短連接配接:建立連接配接-----通訊-------斷開連接配接。通訊後立馬斷開連接配接,釋放資源。