Socket概念
Socket又稱"套接字"
網(wǎng)絡(luò)上的2個(gè)程序(客戶端,服務(wù)端)通過一個(gè)雙向的通信連接實(shí)現(xiàn)數(shù)據(jù)的交換(發(fā)送數(shù)據(jù)請(qǐng)求給服務(wù)端,服務(wù)端返回?cái)?shù)據(jù))肥照,這個(gè)連接的一端稱為一個(gè)socket
-
應(yīng)用程序通常通過"套接字"想網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求
IP地址(找服務(wù)器):網(wǎng)絡(luò)上主機(jī)設(shè)備的唯一標(biāo)識(shí) (每個(gè)服務(wù)器都不一樣)
端口號(hào)(定位應(yīng)用程序):找到服務(wù)器(電腦)的哪個(gè)進(jìn)程(應(yīng)用程序)有效:0~65535
傳輸協(xié)議:TCP和UDP是傳輸方式熬荆,而HTTP/XMPP是數(shù)據(jù)傳輸格式
1、TCP(傳輸控制協(xié)議):用什么方式進(jìn)行客戶端和服務(wù)端的交互
1):建議連接拢锹,形成傳輸數(shù)據(jù)的通道。(插起電話線)http的連接方式就是TCP
2):在連接中進(jìn)行大數(shù)據(jù)傳輸(數(shù)據(jù)大小不受限制)(隨便打多久電話)
3):通過3次握手完成連接萄喳,是可靠協(xié)議卒稳,安全送達(dá) (發(fā)送連接(打電話)-服務(wù)端相應(yīng)(對(duì)方說話保證自己聽到)-客戶端回應(yīng)(自己說話保證對(duì)方聽到))
4):必須建立連接,效率會(huì)稍低2他巨、UDP(用戶數(shù)據(jù)報(bào)協(xié)議)
1):將數(shù)據(jù)及源(自己的IP地址)和目的(別人的IP地址)封裝成數(shù)據(jù)包中充坑,不需要建立連接(沒有3次握手)
2):每個(gè)數(shù)據(jù)報(bào)大小限制在64K之內(nèi)
3):無需連接,不可靠協(xié)議(服務(wù)端/客戶端可能會(huì)接受/發(fā)送不到數(shù)據(jù) )
4):無需連接染突,速度快
Socket通信流程
- 客戶端長(zhǎng)連接(即時(shí)通訊)和短連接(請(qǐng)求完服務(wù)器后就斷開了與服務(wù)器的連接) 保存數(shù)據(jù)時(shí)間的問題捻爷,通常我們?cè)诩磿r(shí)通訊中要求長(zhǎng)連接保證通訊的流暢性