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 域名分析工具实现代码
Jul 15 Python
python读取注册表中值的方法
Apr 08 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
Jun 13 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python自动发微信监控报警
Sep 06 Python
利用Python产生加密表和解密表的实现方法
Oct 15 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
python opencv实现信用卡的数字识别
Jan 12 Python
Python的信号库Blinker用法详解
Dec 31 Python
python中用ggplot绘制画图实例讲解
Jan 26 Python
Python 中 Shutil 模块详情
Nov 11 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最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
js获取当前年月日-YYYYmmDD格式的实现代码
2016/06/01 Javascript
jQuery学习心得总结(必看篇)
2016/06/10 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
详解关于Vue2.0路由开启keep-alive时需要注意的地方
2018/09/18 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
Python yield 使用浅析
2015/05/28 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
python监控进程脚本
2018/04/12 Python
对命令行模式与python交互模式介绍
2018/05/12 Python
对python生成业务报表的实例详解
2019/02/03 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
主持词开场白
2014/03/17 职场文书
企业战略合作意向书
2015/05/08 职场文书
情人节单身感言
2015/08/03 职场文书
决心书格式及范文
2019/06/24 职场文书