一个简单的python服务器使用SimpleHTTPServer和SocketServer,如何在重新运行.py文件之前关闭套接字?

Ben*_*ey4 9 python sockets networking http

当我simplehttpwebsite.py在linux shell中运行我的python服务器文件并且我控制+ c并再次运行它时,我得到了socket.error: [Errno 98] Address already in use.

当我按ctrl + c时,如何确保套接字关闭?

simplehttpwebsite.py

#!/usr/bin/env python
import SimpleHTTPServer
import SocketServer

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
server = SocketServer.TCPServer(('0.0.0.0', 8080), Handler)

server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

Nic*_*ood 12

这是你如何做到的

#!/usr/bin/env python
import SimpleHTTPServer
import SocketServer

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
class MyTCPServer(SocketServer.TCPServer):
    allow_reuse_address = True
server = MyTCPServer(('0.0.0.0', 8080), Handler)

server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

恕我直言,这不是很好的记录,它应该是默认的.