python TCP服务器v1.4 - 客户端连接服务器异常(异常情况分类)处理
2023-06-13 09:16:51 时间
TCP聊天服务器套接字v1.4
所有版本记录:
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 - 服务器抗压测试及关闭套接字处理
连接服务器异常情况处理
class Socket():
...
def socket_connect(self):
if hasattr(self, "_socc"):
self.retry() #socket多次连接不同地址会出现 `OSError: [WinError 10022] 提供了一个无效的参数.`
else:
self._socc = True
try:
self.socket.connect(self.addr)
except socket.gaierror:
return f"获取地址信息失败.请确保{self.addr[0]}是有效地址或ipv4/ipv6"
except socket.timeout:
return f"连接超时({TIMEOUT}s).服务器[{self.addr[0]}:{self.addr[1]}]连接失败."
except OverflowError:
return f"输入的端口号为{self.addr[1]},端口号必须在0~65535间."
except ConnectionResetError:
pass
except OSError as e:
if int(self.addr[1]) == 0:
return "[WinError 10049] 在其上下文中,该请求的地址无效"
return str(e.args[1]).rstrip('。')
except TypeError:
return f"网络地址格式错误: 格式[ip:port] port必须为整型变量0~65535间."
except:
logging.exception(msg=str())
else:
return True
def connect(self, ip = None,port:int=0000, show=lambda: None):
if ip is None:
assert hasattr(self,"addr"), "ip address is empty."
else:
self.addr = (ip, port)
result = self.socket_connect()
if result is True:
show("[{}]: 连接成功".format(get_time()))
s._connect = True
return True
else:
show(f"[{get_time()}]: {result}")
s._connect = False
return False
相关文章
- python编程是啥-Python编程「建议收藏」
- python安装不了whl文件_Python安装whl文件过程图解
- 简述python变量的命名规则_Python 变量命名规则
- Python&R语言-python和r相遇
- python服务器运维步骤_python运维服务器
- 【说站】python中echo服务器的介绍
- 【说站】python电脑桌面中整理exe程序
- python的dateutil库
- Python字典提取_python字典键对应的值
- PYTHON主机_我的Python世界PDF
- python win32api sendmessage_Python win32api.SendMessage方法代码示例[通俗易懂]
- python hashlib_python之hashlib模块
- 独家 | 数据科学家对可复用Python代码的实用管理方法(附链接)
- Python 进阶指南(编程轻松进阶):十六、面向对象编程和继承
- python网络编程中的线程-多线程服务器编程
- python-Django-Django 模板引擎(一)
- Python 智能项目:6~10
- python通过pysftp加密上传、下载ftp服务器文件详解编程语言
- Python面试基础题-2018-12-26详解编程语言
- python库——Turtle详解编程语言
- 使用这个 Python 工具分析你的 Web 服务器日志文件
- Connecting to MSSQL with Python: A Comprehensive Guide for Beginners(python连接mssql)
- Python编程连接MySQL:从零开始(python与mysql)
- python实现问号表达式(?)的方法
- python发送伪造的arp请求