1. 程式人生 > 其它 >socket基礎——udp套接字

socket基礎——udp套接字

技術標籤:socketlinux網路python

socket基礎

首先匯入socket庫
import socket
建立一個udp套接字
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
先寫一個傳送資訊的
# 從鍵盤獲取傳送資料
whatYouWantToSend = input('請輸入你要傳送的內容:')
# 你要傳送的ip地址以及埠port 這裡的ip是我的ip 埠port是自己設定的
dest_addr = ('192.168.56.1', 8080)
# 傳送資訊給這個ip地址
udp_socket.
sendto(whatYouWantToSend.encode('gbk'), dest_addr)
最後關閉這個套接字
udp_socket.close()
另起一個檔案進行接收
# 建立一個udp套接字
udp_receive = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 設定一個預設埠port 因為接受的時候一定要這個端口才可以接收到 而傳送的話可以任意介面
local_addr = ('', 8899)
# 鎖定埠為8899
udp_receive.bind(local_addr)
# 每次接收檔案最大的限制單位位元組(byte)
recv_data = udp_receive.recvfrom(1024) # 返回的資料recv_data是元組型別 所以可以用下標的方式進行列印輸出 print(f'{recv_data[1][0]}:{recv_data[1][1]}向你傳送了:{recv_data[0].decode("gbk")}') # 最後關閉ubp套接字 udp_receive.close()
最後呈現的效果

image-20210121195323515

用我的linux系統傳送內容

image-20210121195253570

windows進行接收

ps:我寫了迴圈所以可以傳送很多次 可以看出每次接受的時候埠號都是不同的 因為我們沒有鎖定傳送的埠號 但是接收的埠號是必須鎖定的 不然是傳送不到的哦~