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 随机数生成的代码的详细分析
May 15 Python
python实现目录树生成示例
Mar 28 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
利用python模拟sql语句对员工表格进行增删改查
Jul 05 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
python简单商城购物车实例代码
Mar 15 Python
python3使用GUI统计代码量
Sep 18 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
基于python实现从尾到头打印链表
Nov 02 Python
python中从for循环延申到推导式的具体使用
Nov 29 Python
Python selenium实现断言3种方法解析
Sep 08 Python
Python列表元素删除和remove()方法详解
Jan 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
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
Yii1.1中通过Sql查询进行的分页操作方法
2017/03/16 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
原生JS实现列表子元素顺序反转的方法分析
2018/07/02 Javascript
从零学Python之入门(三)序列
2014/05/25 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
每天迁移MySQL历史数据到历史库Python脚本
2018/04/13 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
python3.7.0的安装步骤
2018/08/27 Python
python实现简单日期工具类
2019/04/24 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
django model 条件过滤 queryset.filter(**condtions)用法详解
2020/05/20 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
python+excel接口自动化获取token并作为请求参数进行传参操作
2020/11/10 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
应聘收银员个人的求职信
2013/11/30 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
大明湖导游词
2015/02/03 职场文书
环卫个人总结
2015/03/03 职场文书
大学入学感言
2015/08/01 职场文书
自书遗嘱范文
2015/08/07 职场文书
导游词之桂林山水
2019/09/20 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
分析Netty直接内存原理及应用
2021/06/14 Java/Android