什么是 socket?簡述基於 tcp 協議的套接字通信流程?


 Socket的英文原義是"孔"或"插座"。通常也稱作"套接字",用於描述IP地址和端口,是一個通信鏈的句柄,

可以用來實現不同虛擬機或不同計算機之間的通信。

在Internet上的主機一般運行了多個服務軟件,同時提供幾種服務每種服務都打開一個Socket,並綁定到一個端口上,不同的端口對應於不同的服務。

 

基於tcp 協議的套接字通信流程:

1). 服務器先用 socket 函數來建立一個套接字,用這個套接字完成通信的監聽。 
2). 用 bind 函數來綁定一個端口號和 IP 地址。因為本地計算機可能有多個網址和 IP,每一個 IP 和端口有多個端口。需要指定一個 IP 和端口進行監聽。 
3). 服務器調用 listen 函數,使服務器的這個端口和 IP 處於監聽狀態,等待客戶機的連接。 
4). 客戶機用 socket 函數建立一個套接字,設定遠程 IP 和端口。 
5). 客戶機調用 connect 函數連接遠程計算機指定的端口。 
6). 服務器用 accept 函數來接受遠程計算機的連接,建立起與客戶機之間的通信。 
7). 建立連接以后,客戶機用 write 函數向 socket 中寫入數據。也可以用 read 函數讀取服務器發送來的數據。 
8). 服務器用 read 函數讀取客戶機發送來的數據,也可以用 write 函數來發送數據。 
9). 完成通信以后,用 close 函數關閉 socket 連接。


免責聲明!

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



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