此代碼應該嘗試並啓動服務器進程並返回。 如果端口被佔用,則應該說「無法綁定到該端口」並返回。如果服務器啓動,它應該打印「綁定到端口51231」並返回。但它不會返回。叉和退出在Python
import socket
from multiprocessing import Process
def serverMainLoop(s,t):
s.listen(5)
while 1:
pass # server goes here
host = ''
port = 51231
so = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
so.bind((host,port))
print "Bound to port %i"%port
serverProcess = Process(target=serverMainloop, args=(so,60))
serverProcess.start()
sys.exit()
except socket.error, (value,message):
if value==98:
print "couldn't bind to that port"
sys.exit()
是否有一些開關可以導致多處理讓我這麼做?
代碼工作與我同你所描述的: 第一次運行掛起,如果我跑了兩次,第二個實例顯示「無法綁定到該端口」,然後退出。那麼,你的問題是什麼? – theomega 2010-07-28 18:12:58
我不希望第一個掛起,我希望它返回並打印它綁定的端口,而不會終止正在循環的子進程。 – Nathan 2010-07-28 18:20:27