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