1. 程式人生 > >網絡編程(關於TCP和UDP)

網絡編程(關於TCP和UDP)

郵件 控制 程序 數據傳輸 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)