यहाँ सर्वर को चलाने के लिए मेरी कोड है:अजगर TCPServer पहले से प्रयोग में है, लेकिन पता मैं सर्वर को बंद करने और मैं का उपयोग `allow_reuse_address`
class MyRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
#....
PORT = 8089
httpd = SocketServer.TCPServer(("", PORT), MyRequestHandler)
httpd.allow_reuse_address = True
print "Serving forever at port", PORT
try:
httpd.serve_forever()
except:
print "Closing the server."
httpd.server_close()
raise
अभी तक तो ऐसा होता है:
^CClosing the server.
Traceback (most recent call last):
File "server.py", line 118, in <module>
self.send_error(400, "Unimplemented GET command: %s" % (self.path,))
File "/home/claudiu/local/lib/python2.6/SocketServer.py", line 224, in serve_forever
r, w, e = select.select([self], [], [], poll_interval)
KeyboardInterrupt
(.virtualenv)[email protected]:~/xxx$ python server.py
Traceback (most recent call last):
File "server.py", line 122, in <module>
httpd = SocketServer.TCPServer(("", PORT), MyRequestHandler)
File "/home/claudiu/local/lib/python2.6/SocketServer.py", line 402, in __init__
self.server_bind()
File "/home/claudiu/local/lib/python2.6/SocketServer.py", line 413, in server_bind
self.socket.bind(self.server_address)
File "<string>", line 1, in bind
socket.error: [Errno 98] Address already in use
क्यों ? मैं सर्वर बंद करता हूं और allow_reuse_address
को सत्य पर सेट करता हूं ... पायथन 2.6.8 का उपयोग करना।
नहीं एक महान प्रशस्ति पत्र। * पोर्ट * अभी भी * वर्तमान * TIME_WAIT स्थिति में है। कोई सॉकेट नहीं है, और कोई भी नहीं सुन रहा है। – EJP
मैं समझता हूं, लेकिन मैं जानना चाहता था कि मेरे समाधान क्यों (सेट 'allow_reuse_address' सेट करें और शटडाउन पर सॉकेट बंद करें) इसे ठीक नहीं किया। – Claudiu