博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件传输, socketserver模块
阅读量:6793 次
发布时间:2019-06-26

本文共 1646 字,大约阅读时间需要 5 分钟。

一. 文件传输

# ===================================== 服务器端 ===================================== # 思路: 做一个要穿的内容的字典, 计算字典的长度, 然后发送字典的长度和字典的json的字符串, 再发送内容import structimport socketimport jsonimport hashlibsock=socket.socket()sock.bind(('127.0.0.1',8800))sock.listen(5)while 1:    print("server is working....")    conn,addr= sock.accept()    while 1:        # 接收json的打包长度        file_info_length_pack=conn.recv(4)        file_info_length=struct.unpack("i",file_info_length_pack)[0]        # 接收json字符串        file_info_json=conn.recv(file_info_length).decode("utf8")        file_info=json.loads(file_info_json)        action=file_info.get("action")        filename=file_info.get("filename")        filesize=file_info.get("filesize")        # 循环接收文件        md5=hashlib.md5()        with open("put/"+filename,"wb") as f:            recv_data_length=0            while recv_data_length

  

二. socketserver模块

import socketserverclass Myserver(socketserver.BaseRequestHandler):    def handle(self):        # 字节类型        while 1:            # 针对window系统            try:                print("等待信息")                data = self.request.recv(1024)  # 阻塞                # 针对linux                if len(data) == 0:                    break                if data == b'exit':                    break                response = data + b'SB'                self.request.send(response)            except Exception as e:                break        self.request.close()# 1 创建socket对象 2 self.socket.bind()  3 self.socket.listen(5)server=socketserver.ForkingUDPServer(("127.0.0.1",8899),Myserver)server.serve_forever()

  

 

转载于:https://www.cnblogs.com/NachoLau/p/9594497.html

你可能感兴趣的文章
F5新型数据中心防火墙
查看>>
F5荣获网络优化类别年度最佳HP AllianceOne合作伙伴奖项
查看>>
Windows Phone:使用三方(多方)通话的电话会议
查看>>
Exchange2010和2013共存后IMAP问题
查看>>
38 tomcat lb cluster、memcached和msm、msm及jvm虚拟机性能监控、tcpdump和nc工具的使用...
查看>>
Tomcat JVM优化一例
查看>>
给U盘加个回收站
查看>>
ifconfig
查看>>
Oracle 数据库归档满处理办法
查看>>
Linux双网卡绑定脚本
查看>>
udev控制磁盘引导顺序
查看>>
Linux下SCP拷贝文件
查看>>
Android消息机制(一)
查看>>
Lenovo Thinks Station E32 (I217-LM网卡) 安装ESXi 5.1
查看>>
阵列波导光栅
查看>>
我的友情链接
查看>>
如何把网页变成黑白
查看>>
中科恒伦入选安全牛,安全行业全景图
查看>>
Python:使用threading模块实现多线程编程四[使用Lock互斥锁]
查看>>
LVM磁盤管理PV/VG/LV常用命令參考手冊(附AIX命令對比)
查看>>