1. 程式人生 > 程式設計 >Python實現基於socket的udp傳輸與接收功能詳解

Python實現基於socket的udp傳輸與接收功能詳解

本文例項講述了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程式設計有所幫助。