python实现UDP协议下的文件传输


Posted in Python onMarch 20, 2020

本文实例为大家分享了python实现UDP文件传输的具体代码,供大家参考,具体内容如下

UDP协议下文件传输:

服务端

import socket

count = 0
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
server_addr = ('127.0.0.1',9999)
s.bind(server_addr)

print('Bind UDP on 9999...')
while True:
 if count == 0:
  data,client_addr = s.recvfrom(1024)
  print('connected from %s:%s'%client_addr)
  f = open(data, 'wb')
 data, client_addr = s.recvfrom(1024)
 if str(data) != "b'end'":
  f.write(data)
  print('recieved '+str(count)+' byte')
 else:
  break
 s.sendto('ok'.encode('utf-8'),client_addr)
 count+=1
print('recercled'+str(count))
f.close()
s.close()

 # data, addr = s.recvfrom(1024)
 # print('Received from %s:%s' %addr)
 # s.sendto(b'Hello, %s!' %data, addr)

客户端

import socket
import os
import time

def Get_FilePath_FileName_FileExt(filename):
 filepath, tempfilename = os.path.split(filename)
 shotname, extension = os.path.splitext(tempfilename)
 return filepath, shotname, extension

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

filename = input('please enter the filename you want to send:\n')
filepath, shotname, extension = Get_FilePath_FileName_FileExt(filename)

client_addr = ('127.0.0.1',9999)
f = open(filename,'rb')
count = 0
flag = 1
while True:
 if count == 0:
  data = bytes(shotname+extension, encoding = "utf8")
  start = time.time()
  s.sendto(data,client_addr)
 data = f.read(1024)
 if str(data) != "b''":
  s.sendto(data,client_addr)
  print(str(count)+'byte')

 else:
  s.sendto('end'.encode('utf-8'),client_addr)
  break
 data, server_addr = s.recvfrom(1024)
 count+=1
print('recircled'+str(count))
s.close
end = time.time()
print('cost'+str(round(end-start,2))+'s')
# for data in [b'Michael',b'Tracy',b'Sarah']:
#  s.sendto(data,('127.0.0.1',9999))
#  print(s.recv(1024).decode('utf-8'))
# s.close()

此次试验为100000Byte大小的文件,运行后查看服务器端信息:

python实现UDP协议下的文件传输

客户端上查看传输时延:

python实现UDP协议下的文件传输

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
学习python处理python编码问题
Mar 13 Python
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python configparser模块配置文件过程解析
Mar 03 Python
Django 实现对已存在的model进行更改
Mar 28 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
python实现TCP文件传输
Mar 20 #Python
python实现FTP循环上传文件
Mar 20 #Python
python实现ftp文件传输功能
Mar 20 #Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 #Python
python实现FTP文件传输的方法(服务器端和客户端)
Mar 20 #Python
python实现ftp文件传输系统(案例分析)
Mar 20 #Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 #Python
You might like
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
js列举css中所有图标的实现代码
2011/07/04 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
axios基本入门用法教程
2017/03/25 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
Vue自定义组件的四种方式示例详解
2020/02/28 Javascript
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
PyQt5实现下载进度条效果
2018/04/19 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python excel转换csv代码实例
2019/08/26 Python
pygame实现五子棋游戏
2019/10/29 Python
python安装gdal的两种方法
2019/10/29 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
python烟花效果的代码实例
2020/02/25 Python
Python: glob匹配文件的操作
2020/12/11 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
班干部竞选演讲稿
2014/04/24 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
预备党员转正材料
2014/12/19 职场文书
篮球比赛通讯稿
2015/07/18 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python