日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python udp 传输文件_python网络编程:UDP方式传输数据

發布時間:2025/3/20 python 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python udp 传输文件_python网络编程:UDP方式传输数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDP --- 用戶數據報協議(User Datagram Protocol),是一個無連接的簡單的面向數據報的運輸層協議。

UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地。

由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。

開發環境:linux下pycharm3.5

測試:使用terminal終端測試

使用 nc -u ip 端口 進行測試客戶端

使用 nc -lu ip 端口 進行測試服務器端

1.udp服務器端接受一次數據

import socket

# 設置服務器默認端口號

PORT = 9002

# 創建一個套接字socket對象,用于進行通訊

# socket.AF_INET 指明使用INET地址集,進行網間通訊

# socket.SOCK_DGRAM 指明使用數據協議,即使用傳輸層的udp協議

server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

address = ("", PORT)

# 為服務器綁定一個固定的地址,ip和端口

server_socket.bind(address)

# 接收客戶端傳來的數據 recvfrom接收客戶端的數據,默認是阻塞的,直到有客戶端傳來數據

# recvfrom 參數的意義,表示最大能接收多少數據,單位是字節

# recvfrom返回值說明

# receive_data表示接受到的傳來的數據,是bytes類型, receive_data.decode()解碼,將bytes類型轉換為字符串類型

# client_address 表示傳來數據的客戶端的身份信息,客戶端的ip和端口,元組

receive_data, client = server_socket.recvfrom(1024)

print("來自客戶端%s,發送的%s" % (client, receive_data.decode()))

# 不再接收數據的時候,將套接字socket關閉

server_socket.close()

測試:

2.udp服務端循環多次接受數據

import socket

PORT = 9002

server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

address = ("192.168.219.129", PORT)

server_socket.bind(address)

while True:

receive_data, client_address = server_socket.recvfrom(1024)

print("接收到了客戶端 %s 傳來的數據: %s" % (client_address, receive_data.decode()))

PS:遇到問題沒人解答?需要Python學習資料?可以加點擊下方鏈接自行獲取

note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

3.udp客戶端接受一次數據

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

msg = input("請輸入要發送的內容:") # 字符串類型, 通過msg.encode() 編碼 轉換為bytes類型

server_address = ("127.0.0.1", 8000) # 接收方 服務器的ip地址和端口號

client_socket.sendto(msg.encode(), server_address)

client_socket.close()

4.udp客戶端循環多次接受數據

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:

msg = input("請輸入要發送的內容:")

server_address = ("192.168.79.127", 8000)

client_socket.sendto(msg.encode(), server_address)

5.udp服務器端循環多次接受發送數據

import socket

PORT = 8000

server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

address = ("", PORT)

server_socket.bind(address)

while True:

receive_data, client_address = server_socket.recvfrom(1024)

print("接收到了客戶端d %s 傳來的數據: %s" % (client_address, receive_data.decode()))

server_socket.sendto(receive_data, client_address)

6.udp客戶端循環多次接受發送數據

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

while True:

msg = input("請輸入要發送的內容:")

server_address = ("", 8000)

client_socket.sendto(msg.encode(), server_address)

receive_data, sender_address = client_socket.recvfrom(1024)

print("接受到了發送方 %s 傳來的數據: %s" % (sender_address, receive_data.decode()))

總結

以上是生活随笔為你收集整理的python udp 传输文件_python网络编程:UDP方式传输数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。