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

2023-02-06 10:12:58 浏览数 (1)

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

文章目录

  • gitcode

所有版本记录: 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:Anaconda3python.exe "C:Program FilesJetBrainsPyCharm 2022.1pluginspythonhelperspydevpydevd.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

0 人点赞