2012-05-16 27 views
9

Khi tôi chạy tệp máy chủ python simplehttpwebsite.py trong vỏ linux và tôi điều khiển + c và chạy lại, tôi nhận được socket.error: [Errno 98] Address already in use.Một máy chủ python đơn giản sử dụng SimpleHTTPServer và SocketServer, làm cách nào để đóng ổ cắm xuống trước khi chạy lại tệp .py?

Làm cách nào để đảm bảo ổ cắm đóng khi tôi thực hiện 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() 
+1

Có thể trùng lặp: http://stackoverflow.com/questions/4465959/python-errno-98-address-already-in-use – freakish

+1

@freakish: cùng nguyên nhân có, nhưng giải pháp khác trong khuôn khổ 'SocketServer' –

Trả lời

13

Đây là cách bạn làm điều đó

#!/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 đây không phải là rất tốt tài liệu, và nó chắc chắn sẽ là mặc định.

Các vấn đề liên quan