PythonでConnectionResetErrorをキャッチしたい
PythonでHTTPserverを作っています
そのサーバーに対してポートスキャンを行うとConnectionResetErrorが発生します
発生している問題・エラーメッセージ
---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 37138) Traceback (most recent call last): File "/usr/lib/python3.8/socketserver.py", line 316, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib/python3.8/socketserver.py", line 347, in process_request self.finish_request(request, client_address) File "/usr/lib/python3.8/socketserver.py", line 360, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python3.8/socketserver.py", line 720, in __init__ self.handle() File "/usr/lib/python3.8/http/server.py", line 427, in handle self.handle_one_request() File "/usr/lib/python3.8/http/server.py", line 395, in handle_one_request self.raw_requestline = self.rfile.readline(65537) File "/usr/lib/python3.8/socket.py", line 669, in readinto return self._sock.recv_into(b) ConnectionResetError: [Errno 104] Connection reset by peer ----------------------------------------
該当のソースコード
Python
1from http.server import BaseHTTPRequestHandler, HTTPServer 2import time 3 4hostName = "localhost" 5serverPort = 8080 6 7class MyServer(BaseHTTPRequestHandler): 8 def do_GET(self): 9 self.send_response(200) 10 self.send_header("Content-type", "text/html") 11 self.end_headers() 12 self.wfile.write("HELLO!\n".encode()) 13 14if __name__ == "__main__": 15 webServer = HTTPServer((hostName, serverPort), MyServer) 16 17 try: 18 webServer.serve_forever() 19 except KeyboardInterrupt: 20 pass 21 22 webServer.server_close()
試したこと
17行目付近の例外処理を追加する
try: webServer.serve_forever() except KeyboardInterrupt: pass except ConnectionResetError: print("error") pass
補足情報(FW/ツールのバージョンなど)
Python 3.8.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。