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中使用enumerate函数遍历元素实例
Jun 16 Python
python控制台中实现进度条功能
Nov 10 Python
python使用fork实现守护进程的方法
Nov 16 Python
分享vim python缩进等一些配置
Jul 02 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
基于python实现学生管理系统
Oct 17 Python
Python Django框架实现应用添加logging日志操作示例
May 17 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
python实现拼图小游戏
Feb 22 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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的正则处理函数总结分析
2008/06/20 PHP
php无序树实现方法
2015/07/28 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
基于thinkPHP类的插入数据库操作功能示例
2017/01/06 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
jquery插件 autoComboBox 下拉框
2010/12/22 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
vue项目刷新当前页面的三种方法
2018/12/04 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
Python简单实现子网掩码转换的方法
2016/04/13 Python
Python适配器模式代码实现解析
2019/08/02 Python
从numpy数组中取出满足条件的元素示例
2019/11/26 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
一些高难度的SQL面试题
2016/11/29 面试题
Windows和Linux动态库应用异同
2016/07/28 面试题
顶岗实习接收函
2014/01/09 职场文书
开会迟到检讨书
2014/02/03 职场文书
药品促销活动方案
2014/02/14 职场文书
大学生求职信
2014/06/17 职场文书
中学音乐课教学反思
2016/02/18 职场文书