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常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
Python构建图像分类识别器的方法
Jan 12 Python
Python基础教程之if判断,while循环,循环嵌套
Apr 25 Python
python中的协程深入理解
Jun 10 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
什么是python的函数体
Jun 19 Python
Django实现聊天机器人
May 31 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实现mysql同步的实现方法
2009/10/21 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
php中Snoopy类用法实例
2015/06/19 PHP
IE php关于强制下载文件的代码
2008/08/23 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jquery实现的淡入淡出下拉菜单效果
2015/08/25 Javascript
详解vuex的简单使用
2018/03/12 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
angularjs $http调用接口的方式详解
2018/08/13 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
python备份文件的脚本
2008/08/11 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
2016/06/13 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
使用Keras实现简单线性回归模型操作
2020/06/12 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
大专生简历的自我评价
2013/11/26 职场文书
信息技术专业个人自我评价
2013/12/11 职场文书
初中生物教学反思
2014/01/10 职场文书
大家访活动实施方案
2014/03/10 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
2022/09/23 HTML / CSS
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python