一、socket的概念
socket 又成『套接字』。
網(wǎng)絡(luò)上的兩個(gè)程序通過(guò)一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換,這個(gè)連接的一端成為一個(gè) socket。
應(yīng)用程序通常通過(guò)『套接字』向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。
socket過(guò)程
二、網(wǎng)絡(luò)通信要素
- 網(wǎng)絡(luò)上的的請(qǐng)求就是通過(guò) Socket 來(lái)建立連接然后互相通信
- IP 地址(網(wǎng)絡(luò)上主機(jī)設(shè)備的唯一標(biāo)識(shí))
- 端口號(hào)(定位程序)
- 用于標(biāo)示進(jìn)程的邏輯地址,不同進(jìn)程的標(biāo)示
- 有效端口:0 ~ 65535,其中 0 ~ 1024 由系統(tǒng)使用或者保留,開(kāi)發(fā)中建議使用 1024 以上的端口
- 傳輸協(xié)議(用什么樣的方式進(jìn)行交互)
- 通訊的規(guī)則
- 常見(jiàn)協(xié)議:TCP、UDP
TCP & UDP
-
TCP(傳輸控制協(xié)議)
- 建立連接,形成傳輸數(shù)據(jù)的通道
- 在連接中進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)不受限制)
- 通過(guò)三次握手完成連接,是可靠協(xié)議,安全送達(dá)
- 必須建立連接,效率會(huì)稍低
-
UDP(用戶數(shù)據(jù)報(bào)協(xié)議)
- 將數(shù)據(jù)及源和目的封裝成數(shù)據(jù)包中,不需要建立連接
- 每個(gè)數(shù)據(jù)報(bào)的大小限制在 64 K 之內(nèi)
- 因?yàn)闊o(wú)需連接,因此是不可靠協(xié)議
- 不需要建立連接,速度快
四、Socket通信流程圖
Socket通信流程圖