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
def __in__(username) -> bool:
return >> encode << (username) in data
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 <<