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用GET方法上传文件
Mar 10 Python
Python运用于数据分析的简单教程
Mar 27 Python
深入理解Python变量与常量
Jun 02 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
PyChar学习教程之自定义文件与代码模板详解
Jul 17 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 Python
对python使用http、https代理的实例讲解
May 07 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Python enumerate函数功能与用法示例
Mar 01 Python
基于python的列表list和集合set操作
Nov 24 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 Python
浅析python中特殊文件和特殊函数
Feb 24 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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
php用ini_get获取php.ini里变量值的方法
2015/03/04 PHP
PHP 500报错的快速解决方法
2016/12/14 PHP
javascript 流畅动画实现原理
2009/09/08 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
javascript中的document.open()方法使用介绍
2013/10/09 Javascript
JS和函数式语言的三特性
2014/03/05 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
Angular移动端页面input无法输入的解决方法
2017/11/14 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
python实现超简单端口转发的方法
2015/03/13 Python
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
在python的类中动态添加属性与生成对象
2016/09/17 Python
python安装cx_Oracle模块常见问题与解决方法
2017/02/21 Python
Python 备份程序代码实现
2017/03/06 Python
使用python实现BLAST
2018/02/12 Python
Python 音频生成器的实现示例
2019/12/24 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
python利用platform模块获取系统信息
2020/10/09 Python
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
C++的几个面试题附答案
2016/08/03 面试题
《夸父追日》教学反思
2014/02/26 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
工程部部长岗位职责
2015/02/12 职场文书
公司聚餐通知
2015/04/22 职场文书
深入浅出的讲解:信号调制到底是如何实现的
2022/02/18 无线电