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爬虫之urllib2使用指南
Nov 05 Python
Python实现给qq邮箱发送邮件的方法
May 28 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
python之Socket网络编程详解
Sep 29 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
Aug 03 Python
浅谈Python中的bs4基础
Oct 21 Python
Python 中PyQt5 点击主窗口弹出另一个窗口的实现方法
Jul 04 Python
自定义django admin model表单提交的例子
Aug 23 Python
django orm模块中的 is_delete用法
May 20 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
python turtle绘图
May 04 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
2015/10/27 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
2016/05/12 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
微信小程序开发背景图显示功能
2018/08/08 Javascript
vue实现搜索功能
2019/05/28 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
用js实现放大镜效果
2020/10/28 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
2018/04/19 Python
python实现美团订单推送到测试环境,提供便利操作示例
2019/08/09 Python
Python文件操作方法详解
2020/02/09 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
python实现在线翻译
2020/06/18 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
社团活动总结书
2014/06/27 职场文书
面试通知邮件
2015/04/20 职场文书
2015年采购员工作总结
2015/04/27 职场文书
2015年计算机教学工作总结
2015/07/22 职场文书
干部考核工作总结2015
2015/07/24 职场文书