socket “套接字”
網(wǎng)絡(luò)上的兩個(gè)程序通過一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端稱為socket遥缕。
應(yīng)用程序通常通過”套接字“向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。
客戶端 ? ?socket --------通信管道-------- ?socket 服務(wù)器 ? socket為隧道的端口
客戶端發(fā)送網(wǎng)絡(luò)請(qǐng)求,服務(wù)器端響應(yīng)網(wǎng)絡(luò)請(qǐng)求。
網(wǎng)絡(luò)上的請(qǐng)求就是通過Socket來建立連接然后互相通信
IP地址(網(wǎng)絡(luò)上主機(jī)設(shè)備的唯一標(biāo)識(shí))
端口號(hào):(定位程序)
用于標(biāo)識(shí)進(jìn)程的邏輯地址抹腿,不同進(jìn)程的標(biāo)示。
有效端口:(0---65535)旭寿,其中0-1024由系統(tǒng)使用或者保留端口,開發(fā)中建議使用1024以上的端口崇败。
傳輸協(xié)議(用什么樣的方式交互)通訊規(guī)則和協(xié)議
tcp:傳輸控制協(xié)議
一:建立連接盅称,形成傳輸數(shù)據(jù)的通道
二:在連接中進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)大小不受限制)
三:通過三次握手完成連接,是可靠協(xié)議后室,安全送達(dá) ?客戶和服務(wù)端三次握手?jǐn)?shù)據(jù)的安全性和可靠性缩膝。例如打電話。撥手機(jī)號(hào)碼岸霹,對(duì)面響應(yīng)疾层,然后我收到響應(yīng)也回復(fù)。
四:必須建立連接贡避,效率會(huì)稍低痛黎。
udp:用戶數(shù)據(jù)報(bào)協(xié)議
將數(shù)據(jù)及源和目的封裝成數(shù)據(jù)包中,不需要建立連接刮吧。每個(gè)數(shù)據(jù)報(bào)的大小限制在64k之內(nèi)湖饱,因?yàn)闊o需連接,是不可靠協(xié)議杀捻,不需要建立連接井厌,速度快。
http底層就是socket建立通信管道,實(shí)現(xiàn)數(shù)據(jù)傳輸仅仆。HTTP是一個(gè)TCP的傳輸協(xié)議(方式)器赞,他是一個(gè)可靠、安全的協(xié)議
socket流程:
TCP客戶端:socket()->connect->write()【寫請(qǐng)求】->read->close. ? 兩者是可以建立連接墓拜,請(qǐng)求數(shù)據(jù)拳魁,回應(yīng)數(shù)據(jù),接受連接
TCP服務(wù)端:socket ->bind()[綁定端口]->listen()[監(jiān)聽端口是否有人連接]->accept()->阻塞直到客戶端連接 ->read()【讀客戶端請(qǐng)求】->處理請(qǐng)求->write()->read()->close()