9

Linuxシェルでpythonサーバーファイルを実行し、 simplehttpwebsite.pycontrol + 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()
4

1 に答える 1

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()

IMHO これは十分に文書化されておらず、間違いなくデフォルトである必要があります。

于 2012-05-16T08:04:44.017 に答える