[代码笔记] python 之网络编程: 使用udp 发送音频文件
来源:互联网 发布:天擎网络 编辑:程序博客网 时间:2024/05/21 06:38
使用udp发送一个可执行的jar文件
服务端:
#!python#文件名: demo_server.py''' 规定: 服务器接受客户端请求,得知要发送文件了(实际就得知该发送哪个) 向其发送文件,然后不停的发送(大文件分段发送),此处我还要接受客户端的接受成功消息'''import socketBUF_SIZE = 1024server_addr = ('127.0.0.1',8888)#socket的类型是socket.SOCK_DGRAM(udp使用的)server = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)#服务端照例绑定地址server.bind(server_addr)#循环接受客户端发送数据,并将数据发回count=0flag=1f=open('tank.jar','rb')while True: if count==0: print ("Are You Ready?") data,client_addr = server.recvfrom(BUF_SIZE) print ('来自',client_addr,' 的数据是: ',data.decode('utf-8')) data=f.read(BUF_SIZE) if str(data)!="b''": server.sendto(data,client_addr) print(data)#此处打印注意被刷屏,仅测试用 else: server.sendto('end'.encode('utf-8'),client_addr)#此处为文件结束,发送结束通知给客户端 break data,client_addr = server.recvfrom(BUF_SIZE) print ('接受自 ',client_addr,' 收到数据为 : ',data.decode('utf-8')) count+=1print('循环了'+str(count))server.close()
客户端:
#!python#文件名: demo_client.py''' 规定: 客户端向服务端请求文件(音频或者视屏等完整性要求不高的) 先打个招呼,要文件了(实际可以为要哪个文件) 然后开始接受文件,不停的接受即可(这里我每接受一次就回复一句ok))'''import socketimport structBUF_SIZE = 1024server_addr = ('127.0.0.1',8888)client = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)count=0;#不停的发送数据 ,没发一次尝试接受一次数据并打印f=open('tmp/file_copy.jar','wb')while True: if count==0: data='Yes,I\'m Ready' client.sendto(data.encode('utf-8'),server_addr) data,addr = client.recvfrom(BUF_SIZE) if str(data)!="b'end'": f.write(data) print(data)#此处打印注意被刷屏,仅测试用 else: break;#接受到结束通知,结束循环,打印循环次数,然后去指定路径查找file_copy.jar尝试运行 client.sendto('ok'.encode('utf-8'),addr)#向服务端发送成功通知 count+=1;print('循环了'+str(count))f.close()client.close()
0 0
- [代码笔记] python 之网络编程: 使用udp 发送音频文件
- Python 网络编程之UDP
- python网络编程之UDP
- python网络编程之udp
- python 网络编程之 UDP编程
- python网络编程之UDP实现
- python核心编程-网络之udp
- Java网络编程笔记--实现UDP广播发送与接收
- JavaSE学习笔记--网络编程之UDP
- 学习笔记七之网络编程(UDP)
- 学习笔记七之网络编程(UDP)
- UDP网络编程(Python)
- Python网络编程--UDP
- 网络编程之UDP程序数据包的发送
- java 网络编程之使用UDP
- java网络编程之 UDP的使用
- Python网络编程之socket编程(一)--使用TCP和UDP客户端和服务器通信
- 网络编程之udp
- 秒杀多线程第四篇 一个经典的多线程同步问题
- 格式化时间(SimpleDateFormat)
- centos文字界面上传和下载文件(rz,sz)
- 虚拟机安装vm-tools
- iOS中常用的一些小方法
- [代码笔记] python 之网络编程: 使用udp 发送音频文件
- 日常-AndroidStudio关联Github
- android 关于倒计时CountDownTimer的用法和实例
- leetcode 448. Find All Numbers Disappeared in an Array
- okhttp框架的最简单的基本使用 post和get请求以及用gson解析请求的数据
- MFC控件关联变量
- 字符串中用正则表达式邮箱
- opencv编译
- log4j按日期输出日志的同时限制保存的个数