網(wǎng)絡(luò)編程
·使用網(wǎng)絡(luò)能夠把多方鏈接在一起,然后可以進(jìn)行數(shù)據(jù)傳遞
·所謂的網(wǎng)絡(luò)編程就是,讓在不同的電腦上的軟件能夠進(jìn)行數(shù)據(jù)傳遞,即進(jìn)程之間的通信
端口號(hào)
端口是通過(guò)端口號(hào)來(lái)標(biāo)記的,端口號(hào)只有整數(shù),范圍是從0到65535
端口是怎樣分配的
端口號(hào)不是隨意使用的,而是按照一定的規(guī)定進(jìn)行分配。
端口的分類標(biāo)準(zhǔn)有好幾種,我們這里不做詳細(xì)講解,只介紹一下知名端口和動(dòng)態(tài)端口
動(dòng)態(tài)端口(Dynamic Ports)
動(dòng)態(tài)端口的范圍是從1024到65535
之所以稱為動(dòng)態(tài)端口,是因?yàn)樗话悴还潭ǚ峙淠撤N服務(wù),而是動(dòng)態(tài)分配。
動(dòng)態(tài)分配是指當(dāng)一個(gè)系統(tǒng)進(jìn)程或應(yīng)用程序進(jìn)程需要網(wǎng)絡(luò)通信時(shí),它向主機(jī)申請(qǐng)一個(gè)端口,主機(jī)從可用的端口號(hào)中分配一個(gè)供它使用。
當(dāng)這個(gè)進(jìn)程關(guān)閉時(shí),同時(shí)也就釋放了所占用的端口號(hào)。
socket
socket(簡(jiǎn)稱套接字)是進(jìn)程間通信的一種方式,它與其他進(jìn)程間通信的一個(gè)主要不同是:
它能實(shí)現(xiàn)不同主機(jī)間的進(jìn)程間通信,我們網(wǎng)絡(luò)上各種各樣的服務(wù)大多都是基于Socket來(lái)完成通信的
例如我們每天瀏覽網(wǎng)頁(yè)、QQ聊天、收發(fā)email等等
在Python中 使用socket模塊的函數(shù)socket就可以完成:
socket.socket(AddressFamily, Type)
udp
UDP ---用戶數(shù)據(jù)報(bào)協(xié)議,是一個(gè)無(wú)連接的簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議。UDP不提供可靠性,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)送出去,但是并不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)前不用在客戶和服務(wù)器之間建立一個(gè)連接,且沒(méi)有超時(shí)重發(fā)等機(jī)制,故而傳輸速度很快。
UDP是一種面向無(wú)連接的協(xié)議,每個(gè)數(shù)據(jù)報(bào)都是一個(gè)獨(dú)立的信息,包括完整的源地址或目的地址,它在網(wǎng)絡(luò)上以任何可能的路徑傳往目的地,因此能否到達(dá)目的地,到達(dá)目的地的時(shí)間以及內(nèi)容的正確性都是不能被保證的。
UDP特點(diǎn):
UDP是面向無(wú)連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息,由于通訊不需要連接,所以可以實(shí)現(xiàn)廣播發(fā)送。UDP傳輸數(shù)據(jù)時(shí)有大小限制,每個(gè)被傳輸?shù)臄?shù)據(jù)報(bào)必須限定在64KB之內(nèi)。UDP是一個(gè)不可靠的協(xié)議,發(fā)送方所發(fā)送的數(shù)據(jù)報(bào)并不一定以相同的次序到達(dá)接收方。
【適用情況】
UDP是面向消息的協(xié)議,通信時(shí)不需要建立連接,數(shù)據(jù)的傳輸自然是不可靠的,UDP一般用于多點(diǎn)通信和實(shí)時(shí)的數(shù)據(jù)業(yè)務(wù),比如
·語(yǔ)音廣播
·視頻
·TFTP(簡(jiǎn)單文件傳送)
·SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)
·RIP(路由信息協(xié)議,如報(bào)告股票市場(chǎng),航空信息)
·DNS(域名解釋)

每向客戶端發(fā)送消息的時(shí)候都會(huì)改變端口號(hào)
·一個(gè)udp網(wǎng)絡(luò)程序,可以不綁定,此時(shí)操作系統(tǒng)會(huì)隨機(jī)進(jìn)行分配一個(gè)端口,如果重新運(yùn)行次程序端口可能會(huì)發(fā)生變化
·一個(gè)udp網(wǎng)絡(luò)程序,也可以綁定信息(ip地址,端口號(hào)),如果綁定成功,那么操作系統(tǒng)用這個(gè)端口號(hào)來(lái)進(jìn)行區(qū)別收到的網(wǎng)絡(luò)數(shù)據(jù)是否是此進(jìn)程的
dup應(yīng)用

dup廣播
