更新時間:2021年12月02日10時06分 來源:傳智教育 瀏覽次數(shù):
學習Socket之前首先需要了解一下TCP/IP協(xié)議,TCP/IP協(xié)議是TCP和IP協(xié)議的合稱,TCP(Transfer Control Protocol,傳輸控制協(xié)議)是一種穩(wěn)定可靠的傳送方式,TCP負責發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡貫橹埂6鳬P是給互聯(lián)網(wǎng)的每一臺聯(lián)網(wǎng)設備規(guī)定一個地址。
TCP/IP協(xié)議包含因特網(wǎng)整個TCP/IP協(xié)議簇。在應用層面的包括TFTP、HTTP、SNMP、FTP、SMTP、DNS、Telnet 協(xié)議等。
Socket的英文原義是“孔”或“插座”。在程序方面,可理解為接口對象,在網(wǎng)絡編程中通常也稱作“套接字”,常用于描述IP地址和端口等。Socket是支持TCP/IP的網(wǎng)絡通信的基本操作單元,可以看作是不同主機之間的進程進行雙向通信的端點,簡單地說就是通信兩方的一種約定。作為一個抽象的概念,簡單理解,Socket就是對TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個調(diào)用接口(API)。
Socket中包含了進行網(wǎng)絡通信必需的5種信息:連接使用的協(xié)議、客戶端設備的IP地址、客戶端的端口號、服務器端的IP地址、服務器端口。
Socket需要使用套接字地址來開展工作,套接字地址就是IP地址和端口號的組合,套接字服務與其他網(wǎng)絡服務不同,不需要處理網(wǎng)絡中的GET或POST請求,而是采用點對點傳輸數(shù)據(jù)方式,是一個輕量級的網(wǎng)絡通信解決方案。在套接字服務中,服務器用監(jiān)聽連接,客戶端用來打開一個到服務器的連接,服務器和客戶端都需要一個唯一的IP地址和端口號組合。
下面通過一幅圖來演示Socket的簡單模型,如圖6-3所示。
圖6-3 Socket簡單模型
在圖6-3中,客戶端設備首先通過瀏覽器訪問服務器設備,并且將自己的IP地址和端口號192.16.43.27:500放入瀏覽器的Socket對象中,當服務器軟件需要向客戶端返回數(shù)據(jù)時,首先從Socket對象中取出客戶端的IP地址和端口號,再發(fā)送數(shù)據(jù),由此可以看出,Socket可以理解為一個封裝了IP地址和端口號的接口對象而已。