2012-05-16 10 views
9

Python sunucu dosyamı linux kabukta simplehttpwebsite.py çalıştırdığımda + c kontrolünü çalıştırıyorum ve tekrar çalıştırıyorum socket.error: [Errno 98] Address already in use.SimpleHTTPServer ve SocketServer kullanarak basit bir python sunucusu, rerunning .py dosyasından önce soketi nasıl kapatırım?

Ctrl + c yaptığımda soketin kapandığından nasıl emin olurum?

simplehttpwebsite.py İşte

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

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

server.serve_forever() 
+1

Olası kopya: http://stackoverflow.com/questions/4465959/python-errno-98-address-already-in-use – freakish

+1

@freakish: aynı neden evet, ancak SocketServer çerçevesi içinde farklı bir çözüm –

cevap

13

bu çok iyi belgelenmiş değildir ve kesinlikle varsayılan olmalıdır o

#!/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 yaparız.

İlgili konular