Socket究竟是個什麼東西

Socket在計算機專業術語上的翻譯是「通訊節點」。計算機網絡中闡述,計算機之間的通訊一般指的是應用程序之間的通訊。而應用程序之間使用Socket來通訊,能夠簡單的認爲,Socket封裝了TCP/IP協議的具體實現,咱們能夠經過計算機高級語言在一個抽象層上來實現計算機的通訊,而不用考慮具體的細節。 瀏覽器

最多見的通訊形式是客戶端-服務端形式,咱們打開瀏覽器上網,登陸QQ聊天,就是屬於這種形式。瀏覽器/QQ是客戶端,而網站所在的Web服務器,QQ聊天服務器是服務端。 服務器

服務端經過 Socket 監聽一個端口,並約定協議,客戶端經過 Socket 和服務端創建鏈接,而後經過特定的協議和服務端進行通訊。 網絡

以Web服務器爲例,它啓動之後,監聽80端口,並約定使用http協議。瀏覽器訪問Web服務器時,創建鏈接,發送http請求,Web服務器處理請求,並返回內容。瀏覽器接收到返回信息後,在瀏覽器中呈現,並斷開鏈接。 網站

上面提到的鏈接實際上就是Socket鏈接,由於它是使用Socket來實現的。須要注意的是,上面的過程是一種最簡單的形式,服務端不能主動向客戶端發送數據,一次請求完成後鏈接就斷開了。 spa

在某些時候,Socket鏈接創建後會保持下來,例如聊天應用。當QQ和聊天服務器創建鏈接後,客戶端能夠向服務器發送消息,有新消息時,服務器也能夠主動向客戶端推送消息。鏈接不會斷開,除非用戶退出QQ,這就是Socket長鏈接。而咱們一般見到Web服務器和瀏覽器之間的被稱爲短鏈接。 計算機網絡

相關文章
相關標籤/搜索