Python學習:網路程式設計'TCP'和'UDP'
阿新 • • 發佈:2018-12-16
網路程式設計:計算機之間做資料交換 客戶端:前端 服務端: 如何將資料傳送到服務端 服務端資料如何下發給客戶端 網路程式設計三要素: ip地址:計算機在網路上的位置 埠號:應用程式 協議:傳輸的方式,對話方式 TCP:需要建立連線,速度慢,可靠安全{打電話} UDP:不需要連線,速度快,不可靠不安全{只管發(發簡訊)不管對方有沒有收到}
TCP:
''' client:客戶端 TCP:必須建立連線 ''' import socket # 建立socket物件:指定傳輸協議 # (AF_INET:IPV4 SOCK_STREAM:TCP協議) s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 建立連線:傳送連線請求 s.connect(('10.8.156.24',8000)) # 傳送資料 while True: data = input('我:') s.send(data.encode()) data1 = s.recv(1024) print('她:',data1.decode()) if data1 == '再見': break
''' server:服務端 ''' import socket # 建立socket物件 s= socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 繫結IP地址和埠號 s.bind(('10.8.156.24',8000)) # 監聽 s.listen(1) # 同意連線請求 s1,addr = s.accept() #recive 接收資料 while True: data = s1.recv(1024) print('她:',data.decode()) data1 = input('我:') s1.send(data1.encode()) if data1 == '再見': break
UDP:
import socket
# 建立socket物件 SOCK_DGRAM:udp協議
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 傳送資料
s.sendto('下課下課'.encode(),('10.8.156.24',8000))
import socket # 建立socket物件 SOCK_DGRAM:udp協議 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # s.bind(('10.8.156.24',8000)) while True: # data = s.recv(1024) data,addr = s.recvfrom(1024)#可以看到IP地址 print(addr,':',data.decode())