我希望在同一個端口上有多個服務器會導致問題。實際上,當我嘗試在同一端口上啓動兩臺服務器時,我希望它會引發異常。問題是,在同一個端口上啓動多個服務器似乎更令人高興。我可以有很多下面的代碼運行正常,沒有例外。我可以將多臺服務器綁定到同一個TCP端口嗎?
import BaseHTTPServer
import SimpleHTTPServer
import sys
def main():
try:
server = BaseHTTPServer.HTTPServer(('127.0.0.1',5000), SimpleHTTPServer.SimpleHTTPRequestHandler)
print "On port: " + str(server.socket.getsockname()[1])
except Exception, e:
print e
server.serve_forever()
if __name__ == "__main__":
main()
所有這些都聲稱自己是在端口5000。我怎樣才能得到它,如果它試圖使用已被使用的端口拋出一個異常?
編輯:這是Python的2.6.4
編輯2:http://www.youtube.com/watch?v=rVOG3JdbHAM&feature=youtu.be因爲人們似乎認爲我所解釋是不可能的?或者我完全誤解了人們。無論哪種方式,這個視頻應該清除它。我啓動了兩臺服務器,他們都沒有打印任何異常。當我關閉第一個時,第二個開始工作。這是爲什麼發生?我希望第二臺服務器根本不會啓動並打印一個異常。這不是應該發生什麼?
嗯,你隱藏了例外。如果初始化失敗,將立即終止('server'不會被設置)。 – phihag 2012-07-19 22:37:20
是的,我知道這一點。這只是一個簡單的片段,說明我在同一個端口上有許多服務器的問題。 – Justin 2012-07-19 22:48:21
你必須弄錯,底層操作系統不允許兩個進程在同一個端口上打開套接字服務器。故事中必須有更多。 – 2012-07-19 23:00:21