網絡編程(關於TCP和UDP)
阿新 • • 發佈:2018-12-20
郵件 控制 程序 數據傳輸 imp 最大 bind wan 文件傳輸
TCP是傳輸控制協議,它提供的是面向連接,可靠的字節流服務,當客戶和服務器彼此交換數據前,會進行三次還握手,之後才能傳輸數據,直到數據傳輸結束在進行一次三次握手。
優點:具有超時重發.丟棄重復數據.效驗數據.流量控制等功能,保證了數據能從一端傳到另一端。
缺點:傳輸大型文件時會產生粘包
使用TCP的應用:web瀏覽器.電子郵件.文件傳輸程序
UDP是用戶數據報協議,是一個簡單的面向數據報的運輸層協議。不提供可靠性,只是把應用程序數據報發送出去,不保證是否能接收到數據,傳遞數據時不進行三次握手,沒有重發機制,故而傳輸數據很快
優點 :傳輸快,一對一.一對多.多對多.多對一.面向報文,盡最大努力服務,不會產生粘包問題
缺點:不可靠,沒有連接的服務
使用UDP的應用:視頻流,電臺
簡單的TCP案例:
服務器端:
import socket skt = socket.socket() skt.bind((‘127.0.0.1‘,5000))#綁定ip地址和端口號 skt.listen() #監聽鏈接 conn,addr = skt.accept()#接受客戶端連接 ret = conn.recv(1024) #接受客戶端1024個字節 print(ret) #打印客戶端信息 conn.send(b"laowang") #向客戶端發送信息 conn.close() #關閉客戶端接字 skt.close() #關閉服務器接字
客戶端:
import socket skt = socket.socket() #創建客戶套接字 skt.connect((‘127.0.0.1‘,5000))#嘗試連接服務器 skt.send(b‘1111‘) #對話 ret = skt.recv(1024)# 發送/接收 print(ret) skt.close() #關閉客戶套接字
缺點是只能發一句話
網絡編程(關於TCP和UDP)