TCP聊天+传输文件服务器服务器套接字v2.8 - 修复已知程序4个问题
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
- data库登录问题 [!]: data.py 已经重构于 Database.py
def __in__(username) -> bool:
return >> encode << (username) in data
- 服务端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
...
- 用户端登录/注册界面 注册成功后等待界面仍在运行
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)
- 文件传输时间检测问题
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 <<
- 警告修复
- 减少冗余
gitcode
相关文章
- dos下拷贝服务器文件命令行,win7在DOS环境下怎么使用copy命令?使用copy命令复制文件的方法…[通俗易懂]
- linux服务器中如何解压分卷文件,Linux解压rar文件(unrar安装和使用,分卷解压)…
- 写给大忙人看的 – Java中从MinIO服务器中下载文件(3)[通俗易懂]
- java 上传文件到服务器_ameqp服务器网址
- vue动态引入js文件的方法_vue如何引入js文件
- C#ftp服务器配置与文件上传
- SpringMVC结合Ajaxfileupload异步多文件上传至远程服务器详解编程语言
- 上传文件至Oracle数据库中(上传文件到oracle)
- 文件恢复 bin 文件:Linux 中的灾难终极之战(linux误删除bin)
- 深入Linux服务器:查看日志文件来跟踪服务状态(查看linux服务日志)
- Linux输入数据:存储到文件(linux输入到文件)
- Redis存储文件的功能与优势(redis存文件)
- 文件Linux中实现PID文件的方法(linux生成pid)
- 解决Linux下文件乱码问题(linux上传文件乱码)
- Linux 文件分拆:轻松优化文件管理(linux分拆文件)
- 使用 Linux dd 命令创建文件:从入门到精通(linuxdd创建文件)
- Linux文件对比:如何快速比较两个文件?(linux两个文件对比)
- Linux系统下如何彻底删除文件(在linux怎么删除文件)
- 新手如何将本地文件上传至Linux服务器(本地文件上传到linux)
- 用bat文件快速启动MySQL服务器(bat文件启动mysql)
- Redis快速加载RDB文件,体会性能之美(redis读取rdb文件)
- asp.net下使用DIME协议上传文件
- PHP创建文件(文件夹)以及目录操作代码
- 服务器自动删除文件的脚本