前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP聊天+传输文件服务器服务器套接字v2.8 - 修复已知程序4个问题

TCP聊天+传输文件服务器服务器套接字v2.8 - 修复已知程序4个问题

作者头像
zmh-program
发布2023-02-06 10:12:58
4580
发布2023-02-06 10:12:58
举报
文章被收录于专栏:信息技术博客信息技术博客

TCP聊天+传输文件服务器服务器套接字v2.8

文章目录

所有版本记录: v1.0 : TCP聊天服务器套接字|PyQt5+socket(TCP端口映射+端口放行)+logging+Thread(含日志,html)+anaconda打包32位exe(3.4万字)|python高阶 v1.1 : python TCP套接字服务器v1.1-新增服务端命令功能及修改bug(socket+PyQt5) v1.2 : python TCP服务器v1.2 - 服务端新增用户登录注册(json, md5加密) v1.3 : python TCP服务器v1.3 - 服务器抗压测试及关闭套接字处理 v1.4 : python TCP服务器v1.4 - 客户端连接服务器异常(异常情况分类)处理 v1.5 : PyQt5可编辑下拉框(comboBox):editable - python TCP服务器v1.5 - 客户端连接界面增加自定义参数(设置超时, 连接地址可选) v1.6 : Python TCP服务器v1.6 - multiprocessing多进程及Ctrl-c(SIGINT)退出 v1.7 : Python TCP服务器v1.7 - PyQt5 server服务端来临 v1.8 : python TCP服务器v1.8 - PyQt5登录界面美化+淡入淡出 v1.9 : socketTCP协程文件+信息传递 - TCP聊天文件服务器v1.9 - 划时代的版本更新(4.6万字) v2.0 : TCP聊天文件服务器v2.0 - 重大bug修复+PyQt5文件传输可视化 v2.1 : TCP聊天文件服务器v2.1 - 服务端线程管理(threading.enumerate) v2.2 : TCP聊天文件服务器v2.2 - 服务端客户端套接字解决分包/粘包问题 - SocketQueue继承以及减少冗余 v2.3 : gzip的使用 - TCP聊天文件服务器v2.3 - 文件传输建立缓存制度和.gz的解压缩/压缩解决运行内存过大 v2.4 : 网络传输测速 - TCP聊天+传输文件服务器服务器套接字v2.4 - socket协程文件传送测速 v2.5 : TCP聊天+传输文件服务器服务器套接字v2.5 - socket测速规范已经gzip的弃用 v2.6 : TCP聊天+传输文件服务器服务器套接字v2.6 - 登录注册界面更新 - loading界面应用 v2.7 : python 数据库性能提升 - TCP聊天+传输文件服务器服务器套接字v2.7

  1. data库登录问题 !: data.py 已经重构于 Database.py
代码语言:javascript
复制
def __in__(username) -> bool:
    return >> encode << (username) in data
  1. 服务端Database.handler问题
代码语言:javascript
复制
    def login_data(self):
        while self.isOpen():
            try:
                response = json.loads(self.recv())
                return response["type"], response["username"], response["password"]
            except TypeError:
                self.quit()
     ...
    @ignore
    def forever_receive(self):
        while self.isOpen():
            result, reason, username = Database.handler(*self.login_data())
            self.send(json.dumps({"result": result, "reason": reason}))
            if result:
                self.username = username
                break
         ...
  1. 用户端登录/注册界面 注册成功后等待界面仍在运行
代码语言:javascript
复制
    def handle(self, dictionary: (dict, str)):
        >> self.loading_dialog.close() <<
        if isinstance(dictionary, dict):
            result = dictionary.get("result", False)
            reason = dictionary.get("reason", False)

            if not result:
                self.err_handle(reason)
            else:
                self.successful = True
                self.close()

        self.Enable(True)
  1. 文件传输时间检测问题
代码语言:javascript
复制
D:\Anaconda3\python.exe "C:\Program Files\JetBrains\PyCharm 2022.1\plugins\python\helpers\pydev\pydevd.py" --multiprocess --qt-support=auto --client 127.0.0.1 --port 64076 --file user.pyw
已连接到 pydev 调试器(内部版本号 221.5080.212)2022-06-24 19:12:45,876 - selector_events.py[line:64] - DEBUG: Using selector: SelectSelector
Traceback (most recent call last):
  File "C:/Users/zhnwe/Desktop/ServerProject/user/user.pyw", line 1069, in timers
    timeit = self.get_time()
  File "C:/Users/zhnwe/Desktop/ServerProject/user/user.pyw", line 1095, in get_time
    return getattr(self, "end_time", time.time()) - self.start_time
TypeError: unsupported operand type(s) for -: 'NoneType' and 'float'
代码语言:javascript
复制
删除 >> self.end_time = None <<
  1. 警告修复
  2. 减少冗余

gitcode

https://gitcode.net/m0_60394896/python

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • gitcode
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档