TCP UDP 通訊技術
阿新 • • 發佈:2018-11-10
什麼是 TCP UDP呢,不懂的,送概念連線一份:
https://baike.baidu.com/item/UDP/571511?fr=aladdin
https://baike.baidu.com/item/TCP/IP%E5%8D%8F%E8%AE%AE
簡單來講,TCP 是應用於客戶端與伺服器傳輸的協議,比如你的電腦與新浪網伺服器之間的資料傳輸;UDP是應用於兩個客戶端之間的資料傳輸的,比如藍芽功能(表述不科學,但有助於理解).
UDP傳輸
#服務端,放在一個py檔案中 import socket # 建立udp伺服器socket,sock_dgram,以資料報的形式傳輸 serviceUdpSocekt = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 給伺服器繫結一個地址,埠 serviceUdpSocekt.bind(("111.111.111.1",33333)) while True: #1024,一次接收的資料大小 data,address = serviceUdpSocekt.recvfrom(1024) #編碼 print("客戶端說:%s"%data.decode("utf-8")) print(address) sendData = input("伺服器說:") # 傳送 serviceUdpSocekt.sendto(sendData.encode("utf-8"),address)
#客戶端,另起一個py檔案 import socket clientUdpSocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True: sendData = input("客戶端說:") #如果放在兩個電腦執行,別忘更改埠號啊 clientUdpSocket.sendto(sendData.encode("utf-8"),("111.111.11.1",33333)) recvData,add = clientUdpSocket.recvfrom(1024) print("伺服器說:%s"%recvData.decode("utf-8")) print(add)
把兩個py檔案都執行起來,就能實現簡單的udp通訊了,
TCP傳輸
#TCP服務端 import socket # 建立一個servicesocke,以資料流的形式傳輸資料 serviceSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 給伺服器繫結地址(ip地址,埠號) serviceSocket.bind(("111.111.11.1",22222)) # 設定可以連入的客戶端數量,即同時最多連入5個客戶端 serviceSocket.listen(5) print("等待客戶端接入") # 等待客戶端的接入 # sock 是客戶端的socket資訊 # addr 是客戶端的地址(ip,埠) sock,addr = serviceSocket.accept() print("sock:%s"%sock) print(addr) print("客戶端已經接入") while True: # 接收客戶端的請求 recvData = sock.recv(1024) print("客戶端說:%s"%(recvData.decode("utf-8"))) sendData = input("伺服器說:") # 傳送(回覆)資料給客戶端 sock.send(sendData.encode("utf-8"))
import socket
# 建立客戶端socket
clientSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 連線上伺服器
clientSocket.connect(("11.111.111.11",22222))
while True:
# 傳送訊息給伺服器
sendData = input("客戶端說:")
clientSocket.send(sendData.encode("utf-8"))
recvData = clientSocket.recv(1024)
print("伺服器說:%s"%(recvData.decode("utf-8")))
注意: tcp傳輸就不能像udp那樣,自己在一臺電腦上玩耍了,需要小夥伴的幫忙哦,以你的電腦為客戶端,他的電腦為伺服器,兩個盡情的說悄悄話吧!
以上程式碼非原創,只做分享只用.