Python實現基於socket的udp傳輸與接收功能詳解
阿新 • • 發佈:2020-01-09
本文例項講述了Python實現基於socket的udp傳輸與接收功能。分享給大家供大家參考,具體如下:
udp的傳輸與接收
windows網路除錯助手下載:https://pan.baidu.com/s/1IwBWeAzGUO1A3sCWl20ssQ
提取碼:68gr
或者點選此處本站下載。
一.基本用法
1.建立套接字
udp_socket = socket.socket(socket.AF_INET,cosket.SOCK_DGRAM) localaddr = ("",port) udp_socket.bind(localaddr)
2.使用套接字收發資料
udp_socket.sendto("xxxx").encode("utf-8"),("ip",port) udp_socket.recvfrom(1024)
3.關閉套接字
udp_socket.close()
二.傳送資料流程
- 1.建立套接字
- 2.傳送資料
- 3.關閉
import socket def main(): # 建立一個套接字 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) while True: # 從鍵盤獲取資料 send_data = input("請輸入要傳送的資料:") # 退出函式 if send_data == "exit": break # 可以使用套接字收發資料,此時未繫結傳送的埠號,系統每次會隨機分配一個 # udp_socket.sendto("hahaha",對方的IP和port) # udp_socket.sendto(b"lalala123",("172.17.3.97",8080)) udp_socket.sendto(send_data.encode("gbk"),8080)) #由於接收是在Windows上,而Windows中預設編碼為gbk # 關閉套接字 udp_socket.close() if __name__ == '__main__': main()
三.接收資料流程
- 1.建立套接字
- 2.繫結本地資訊(ip和port)
- 3.接收資料
- 4.關閉
import socket def main(): # 1建立套接字 udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # 2.繫結一個本地資訊 localaddr = ("",7788) # 必須繫結自己電腦IP和port udp_socket.bind(localaddr) # 3.接收資料 while True: recv_data = udp_socket.recvfrom(1024) # recv_data儲存元組(接收到的資料,(傳送方的ip,port)) recv_msg = recv_data[0] # 資訊內容 send_addr = recv_data[1] # 資訊地址 # 4.列印接收到的資料 # print(recv_data) print("資訊來自:%s 內容是:%s" %(str(send_addr),recv_msg.decode("gbk"))) # 5.退出套接字 udp_socket.close() if __name__ == "__main__": main()
執行此程式
在網路除錯助手中傳送訊息
傳送三次“你好”
傳送三次“hello”
回到pycharm檢視資訊
更多關於Python相關內容可檢視本站專題:《Python Socket程式設計技巧總結》、《Python資料結構與演算法教程》、《Python函式使用技巧總結》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總》
希望本文所述對大家Python程式設計有所幫助。