1. 程式人生 > >TCP UDP 通訊技術

TCP UDP 通訊技術

什麼是 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是應用於兩個客戶端之間的資料傳輸的,比如藍芽功能(表述不科學,但有助於理解).

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那樣,自己在一臺電腦上玩耍了,需要小夥伴的幫忙哦,以你的電腦為客戶端,他的電腦為伺服器,兩個盡情的說悄悄話吧!

以上程式碼非原創,只做分享只用.