python網絡編程-TCP與UDP

TCP與UDP的區別:

TCP速度慢,穩定。UDP速度快,不穩定,易丟數據。

UDP:

#客戶端代碼
>>> import socket
>>> ClientSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#創建套接字
>>> sendtoAddr=("192.168.1.111",7561)#接收方的地址,端口
>>> ClientSocket.sendto(b"hello,python",sendtoAddr)#發送數據
12

#服務端方代碼
>>> import socket
>>> ServerSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
>>> Addr=("",7561) #本地地址,端口,地址通常不用謝
>>> ServerSocket.bind(Addr)# 綁定本地地址,端口號
>>> Data,Addr=ServerSocket.recvfrom(1024) #接收到的數據和地址
>>> Data
b'hello,python'
>>> Addr
('192.168.1.104',55598)

TCP:

#客戶端代碼
>>> import socket
>>> ClientSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)     #創建套接字
>>> SendtoAddr=("192.168.1.106",8899)     #服務器端地址
>>> ClientSocket.connect(SendtoAddr)      #與服務器進行連接
>>> ClientSocket.send(b"hello,python")    #發送數據
12
>>> RecvData=ClientSocket.recv(1024)      #接收數據  
>>> print(RecvData)
b'Get Information'
>>> ClientSocket.close()

#服務器端代碼
In [1]: import socket
In [2]: ServerSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
In [3]: Addr=("",8899)
In [4]: ServerSocket.bind(Addr)     #綁定
In [5]: ServerSocket.listen(5)      #監聽,參數5可以是其他數字,在Linux中沒有影響,Mac中有影響
In [6]: ClientSocket,ClientInfo=ServerSocket.accept()     #等待客戶端的連接,連接後返回一個客戶端套接字對象
In [7]: RecvData=ClientSocket.recv(1024)#接收來自客戶端的數據
In [8]: print(RecvData)
b'hello,python'
In [9]: ClientSocket.send(b"Get Information")     #向客戶端發送數據
Out[9]: 15
In [10]: ServerSocket.close()

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章