我在 python 中编写了一个简单的网络服务器并在 centos 中运行它,并使用 systemd 服务创建它。
它使用 ssl 模块ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
和
if PORT==443:
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.load_cert_chain(certfile="cert.crt", keyfile="key.key")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as bindsocket:
bindsocket.bind((HOST, PORT))
bindsocket.listen(3000)
bindsocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
while True:
newsocket, fromaddr = bindsocket.accept()
newsocket.settimeout(10)
try:
connstream = context.wrap_socket(newsocket, server_side=True)
connstream.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
threading.Thread(target = handleSocket,args = (connstream,fromaddr,)).start()
except:
try:
connstream.shutdown(socket.SHUT_RDWR)
connstream.close()
except:
pass
else:
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((HOST, PORT))
s.listen(3000)
while True:
conn, addr = s.accept()
conn.settimeout(10)
threading.Thread(target = handleSocket,args = (conn,addr,)).start()
用于使用 ssl 部分。
我不知道为什么它有时会关闭。
我已经下载了 centos 日志文件并找到了这些日志,但注意到给了我任何有用的信息
8 月 25 日 20:35:28 本地主机内核:python3.7[28448]:7f3752864400 ip 00007f376046bfa0 sp 00007f375162cec8 错误 4 在 libc-2.17.so[7f3760320000+1c2000]
8 月 25 日 20:35:28 localhost python3.7:总时间:0.09245038032531738
8 月 25 日 20:35:28 localhost systemd: cdnpython-new-ssl.service: 主进程退出,code=killed,status=11/SEGV
8 月 25 日 20:35:28 localhost systemd:单元 cdnpython-new-ssl.service 进入失败状态。
8 月 25 日 20:35:28 localhost systemd:cdnpython-new-ssl.service 失败。