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

18 篇文章 1 订阅
4 篇文章 1 订阅

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
def __in__(username) -> bool:
    return >> encode << (username) in data
  1. 服务端Database.handler问题
    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. 用户端登录/注册界面 注册成功后等待界面仍在运行
    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. 文件传输时间检测问题
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'
删除 >> self.end_time = None <<
  1. 警告修复
  2. 减少冗余

gitcode

https://gitcode.net/m0_60394896/python

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值