1

我在 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 失败。

4

0 回答 0