所謂套接字(Socket),就是對網絡中不同主機上的應用進程之間進行雙向通信的端點的抽象。一個套接字就是網絡上進程通信的一端,提供了應用層進程利用網絡協議交換數據的機制。從所處的地位來講,套接字上聯應用進程,下聯網絡協議棧,是應用程序通過網絡協議進行通信的接口,是應用程序與網絡協議棧進行交互的接口。
socket的表示方法是什么?
套接字Socket=(IP地址:端口號),套接字的表示方法是點分十進制的lP地址后面寫上端口號,中間用冒號或逗號隔開。每一個傳輸層連接唯一地被通信兩端的兩個端點(即兩個套接字)所確定。例如:如果IP地址是210.37.145.1,而端口號是23,那么得到套接字就是(210.37.145.1:23)。
socket的工作流程是什么?
要通過互聯網進行通信,至少需要一對套接字,其中一個運行于客戶端,我們稱之為 Client Socket,另一個運行于服務器端,我們稱之為 Server Socket。根據連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟[3]:
(1)服務器監聽。
(2)客戶端請求。
(3)連接確認。
1.所謂服務器監聽,是指服務器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態,實時監控網絡狀態[3]。
2.所謂客戶端請求,是指由客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端接字提出連接請求[3]。
3.所謂連接確認,是指當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求,就會響應客戶端套接字的請求,建立一個新的線程,并把服務器端套接字的描述發送給客戶端。一旦客戶端確認了此描述,連接就建立好了。而服務器端套接字繼續處于監聽狀態,接收其他客戶端套接字的連接請求