套接字 Socket 定義

2021-05-05 07:19:22 字數 995 閱讀 9814

套接字介面可分為三類:公認埠 註冊埠 動態和/或私有埠

套接字,簡單的說就是通訊的兩方的一種約定,用套接字中的相關函式來完成通訊過程

應用層通過傳輸層進行資料通訊時,tcp和udp會遇到同時為多個應用程式程序提供併發服務的問題。多個tcp連線或多個應用程式程序可能需要通過同乙個 tcp協議埠傳輸資料。為了區別不同的應用程式程序和連線,許多計算機作業系統為應用程式與tcp/ip協議互動提供了稱為套接字(socket)的介面。

區分不同應用程式程序間的網路通訊和連線,主要有3個引數:通訊的目的ip位址、使用的傳輸層協議(tcp或udp)和使用的埠號。socket原意是 「插座」。通過將這3個引數結合起來,與乙個「插座」socket繫結,應用層就可以和傳輸層通過套接字介面,區分來自不同應用程式程序或網路連線的通訊,實現資料傳輸的併發服務。

socket可以看成在兩個程式進行通訊連線中的乙個端點,乙個程式將一段資訊寫入socket中,該socket將這段資訊傳送給另外乙個socket中,使這段資訊能傳送到其他程式中。如圖1:

我們來分析一下圖1,host a上的程式a將一段資訊寫入socket中,socket的內容被host a的網路管理軟體訪問,並將這段資訊通過host a的網路介面卡傳送到host b,host b的網路介面卡接收到這段資訊後,傳送給host b的網路管理軟體,網路管理軟體將這段資訊儲存在host b的socket中,然後程式b才能在socket中閱讀這段資訊。

假設在圖1的網路中新增第三個主機host c,那麼host a怎麼知道資訊被正確傳送到host b而不是被傳送到host c中了呢?基於tcp/ip網路中的每乙個主機均被賦予了乙個唯一的ip位址,ip位址是乙個32位的無符號整數,由於沒有轉變成二進位制,因此通常以小數點分隔,如:198.163.227.6,正如所見ip位址均由四個部分組成,每個部分的範圍都是0-255,以表示8位位址。

值得注意的是ip位址都是32位位址,這是ip協議版本4(簡稱ipv4)規定的,目前由於ipv4位址已近耗盡,所以ipv6位址正逐漸代替ipv4位址,ipv6位址則是128位無符號整數。

socket 套接字通訊

要通過internet進行通訊,至少需要一對套接字,其中乙個執行在客戶端,稱之為clientsocket,另乙個執行於伺服器端面,稱為serversocket。根據連線啟動的方式以及本地要連線的目標,套接字之間的連線過程可以分為三個步驟 伺服器監聽 客戶端請求 連線確認。伺服器監聽是指服務端套接字並...

套接字(socket) 埠

套接字 socket socket可以看成在兩個程式進行通訊連線中的乙個端點,乙個程式將一段資訊寫入socket中,該socket將這段資訊傳送給另外乙個socket中,使這段資訊能傳送到其他程式中。套接字,是支援tcp ip的網路通訊的基本操作單元,可以看做是不同主機之間的程序進行雙向通訊的端點,...

學習Socket套接字

在學習之餘,因為乙個小專案,需要用到網路程式設計tcp ip的方式來連線到伺服器端的資料庫中。所以便在網上看了一些教材和帖子,學習了一下,但是還是有一些問題在此討論討論。socket是個什麼東西大家就都知道了,我就不去複製貼上啦。那咱首先介紹什麼呢?咱來介紹一下socket程式設計的標頭檔案 sys...