什么是長連接和短連接


在日常項目中,大多的時候我們用的是短連接,一個請求過來,一個線程處理完該請求,線程被線程池回收,這個請求就關閉了.雖然這能滿足很大部分的需求,但是也有些問題,比如說:如果客戶端發的請求比較多,比較頻繁,服務端就會忙於建立連接處理請求,由於服務端的線程數也有限,並發比較大的話有可能會造成服務端的崩潰.那有沒有一種辦法使連接少一些,讓一個線程可以處理多個連接?長連接的出現就是為了解決上面的問題

長連接

client與server先建立連接以后不斷開,然后進行通信(也就是發送報文)。這種方式由於連接一直存在,所以被稱為長連接。經常用於P2P通信。

建立連接——數據傳輸…(保持連接)…數據傳輸——關閉連接

短連接

Client與server每進行一次通信(報文)才發起連接,交易完畢后 立即斷開連接。此方式常用於一點對多通訊。C/S通信用得比較多。

建立連接——數據傳輸——關閉連接…建立連接——數據傳輸——關閉連接

 

長連接與短連接的使用時機

長連接多用於操作頻繁,點對點的通訊,而且連接數不能太多的情況。每個 TCP連接的建立都需要三次握手,每個TCP連接的斷開要四次握手。如果每次 操作都要建立連接然后再操作的話處理速度會降低,所以每次操作下次操作 時直接發送數據就可以了,不用再建立TCP連接。例如:數據庫的連接用長連接,如果用短連接頻繁的通信會造成socket錯誤,頻繁的socket創建也是對資源的浪費。

在具體的網絡應用中,smtp,pop3,telnet,網絡游戲應用一般是長連接

短連接

web網站的http服務一般都用短連接。因為長連接對於服務器來說要耗費一定 的資源。像web網站這么頻繁的成千上萬甚至上億客戶端的連接用短連接更省 一些資源。試想如果都用長連接,而且同時用成千上萬的用戶,每個用戶都 占有一個連接的話,可想而知服務器的壓力有多大。所以並發量大,但是每個用戶又不需頻繁操作的情況下需要短連接。
————————————————
版權聲明:本文為CSDN博主「不羈朔風」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_36071795/article/details/83791920


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM