還記得在上一節課中,如果乙個網路程式在每次執行的時候埠是隨機變化的麼?
一般情況下,在一天電腦上執行的網路程式有很多,而各自用的埠號很多情況下不知道,為了不與其他的網路程式占用同乙個埠號,往往在程式設計中,udp的埠號一般不繫結
但是如果需要做成乙個伺服器端的程式的話,是需要繫結的,想想看這又是為什麼呢?
如果報警**每天都在變,想必世界就會亂了,所以一般服務性的程式,往往需要乙個固定的埠號,這就是所謂的埠繫結。
*#1. 建立套接字
udpsocket = socket(af_inet, sock_dgram)
#2. 繫結本地的相關資訊,如果乙個網路程式不繫結,則系統會隨機分配
bindaddr =(''
,7788
)# ip位址和埠號,ip一般不用寫,表示本機的任何乙個ip
udpsocket.bind(bindaddr)
#3. 等待接收對方傳送的資料
recvdata = udpsocket.recvfrom(
1024
)# 1024表示本次接收的最大位元組數
#4. 顯示接收到的資料
print recvdata
#5. 關閉套接字
udpsocket.close(
)執行結果:
測試端
本程式
乙個udp網路程式,可以不繫結,此時作業系統會隨機進行分配乙個埠,如果重新執行次程式埠可能會發生變化。
乙個udp網路程式,也可以繫結資訊(ip位址,埠號),如果繫結成功,那麼作業系統用這個埠號來進行區別收到的網路資料是否是此程序的。
145 Python字典(dict)底層實現原理
字典也被稱為關聯陣列,還稱為雜湊陣列等。也就是說,字典也是乙個陣列,但陣列的索引是鍵經過雜湊函式處理後得到的雜湊值。雜湊函式的目的是使鍵均勻地分布在陣列中,並且可以在記憶體中以o 1 的時間複雜度進行定址,從而實現快速查詢和修改。雜湊表中雜湊函式的設計困難在於將資料均勻分布在雜湊表中,從而儘量減少雜...
python程式設計 從入門到實踐 14 5
game fuction def start new level bullets,aliens,ai settings,stats,sb,screen,ship 刪除現有的子彈並新建一群外星人 if len aliens 0 刪除現有的子彈,加快遊戲節奏,並建立一群新的外星人 bullets.emp...
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...