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之简单主机批量管理工具
Jan 27 Python
Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例
Mar 15 Python
pandas创建新Dataframe并添加多行的实例
Apr 08 Python
对python创建及引用动态变量名的示例讲解
Nov 10 Python
对Python3 序列解包详解
Feb 16 Python
Python用字典构建多级菜单功能
Jul 11 Python
Python math库 ln(x)运算的实现及原理
Jul 17 Python
Python网络编程之使用TCP方式传输文件操作示例
Nov 01 Python
python——全排列数的生成方式
Feb 26 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
Python 为什么推荐蛇形命名法原因浅析
Jun 18 Python
Python+DeOldify实现老照片上色功能
Jun 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生成便于打印的网页
2006/10/09 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
php数组函数array_push()、array_pop()及array_shift()简单用法示例
2020/01/26 PHP
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
JavaScript 图像动画的小demo
2012/05/23 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
jQuery使用height()获取高度需要注意的地方
2014/12/13 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
jquery实现的简单轮播图功能【适合新手】
2018/08/17 jQuery
npm 常用命令详解(小结)
2019/01/17 Javascript
node中实现删除目录的几种方法
2019/06/24 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python ljust rjust center输出
2008/09/06 Python
Python引用模块和查找模块路径
2016/03/17 Python
分析Python中解析构建数据知识
2018/01/20 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
HTML5 中新的全局属性(整理)
2013/07/31 HTML / CSS
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
职称自我鉴定
2013/10/15 职场文书
模具数控专业自荐信
2014/01/27 职场文书
小学生学习雷锋倡议书
2014/05/15 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
党员剖析材料范文
2014/12/18 职场文书
教师工作证明范本
2015/06/12 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python