Python 3.6 简单文件上传CS
来源:互联网 发布:pes2018球员数据 编辑:程序博客网 时间:2024/06/03 08:00
一个简单的文件上传服务器和客户端
服务器
# -----------------------# __Author : tyran# __Date : 17-11-16# -----------------------# 文件上传服务器import socketimport osdef get_listen_socket(addr_port: tuple, wait_num=5, is_block=True): """ 获取监听套接字 :param addr_port:必须为tuple类型,(‘ip address’, port_number) :param wait_num: 允许等待人数 :param is_block: 是否阻塞 :return: 返回监听套接字 """ sk = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM) sk.bind(addr_port) sk.setblocking(is_block) sk.listen(wait_num) return skdef save_file(file, f_data): with open(file, 'wb') as fd: fd.write(f_data)if __name__ == '__main__': listen_socket = get_listen_socket(('127.0.0.1', 8888), 2) while True: client_socket, client_address = listen_socket.accept() # 获取上传的信息,文件大小,文件名,我规定了上传格式“文件名|文件大小” file_name, file_size = str(client_socket.recv(1024), encoding='utf-8').strip().split('|') client_socket.send(bytes('update begin', encoding='utf-8')) # 开始接收上传数据 file_data = bytes() file_size = int(file_size) while file_size: data = client_socket.recv(1024) file_size -= len(data) file_data += data save_file(os.path.join(os.path.dirname(__file__), 'image', file_name), file_data)
# -----------------------# __Author : tyran# __Date : 17-11-16# -----------------------import socketimport osdef connect_server(addr_port: tuple, filename): sk = socket.socket() sk.connect(addr_port) file_path = os.path.join(os.path.dirname(os.path.dirname(__file__)), filename) file_size = os.stat(file_path).st_size sk.send(bytes(filename+'|'+str(file_size), encoding='utf-8')) print(str(sk.recv(1024), encoding='utf-8')) with open(file_path, 'rb') as fd: for line in fd: # print(line) sk.send(line) sk.close()if __name__ == '__main__': connect_server(('127.0.0.1', 8888), 'new_web.jpg')
阅读全文
0 0
- Python 3.6 简单文件上传CS
- Python 3.6 socket 简单远程命令CS
- python cs架构实现简单文件的传输
- 文件上传预览用到的一些CS
- 文件上传预览用到的一些CS
- CS Tip 11: 修改上传文件的大小限制
- aspx 文件上传(简单)
- 简单的文件上传
- structs简单文件上传
- 简单文件上传
- 文件上传 简单处理
- jsp 简单上传文件
- 简单文件上传
- 简单上传文件
- php简单文件上传
- javascript简单文件上传
- PHP简单上传文件
- java简单文件上传
- 第12周项目2-Kruskal算法的验证
- 第十二周 项目3-Dijkstra算法的验证
- 运行时异常一般异常的区别
- java中equals 和"=="
- 输入一个不多于5位的正整数。1、求出它是几位数;2、分别输出每一位数字;3、按逆序输出各位数字。
- Python 3.6 简单文件上传CS
- ADABOOSTING 的理解
- 一次Linux服务器被入侵和删除木马程序的经历
- PL/SQL中使用db_link链接两个数据库
- java的HttpClient实现
- 获取寄存器地址的方法
- 第十周-项目5-哈夫曼树
- 3S基础知识:MapX应用教程-如何和大型数据库关联|空间数据库
- 模型的保存