1
多個客戶端我想在python構建一個簡單的socket服務器:接受在python socket服務器
import socket
import threading
import time
def handle(conn_addr):
print("Someone Connected")
time.sleep(4)
print("And now I die")
host = ''
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host,port))
except socket.error as e:
print(str(e))
s.listen(2)
while True:
threading.Thread(handle(s.accept())).start()
print("Should never be reached")
socket服務器應該同時接受多個客戶端。我試圖從我的外殼由多個標籤調用遠程登錄本地主機5000來測試其功能但是我得到的模式是
Someone Connected
And now I die
Someone Connected
And now I die
而不是
Someone Connected
Someone Connected
Someone Connected
我召喚4秒內每次的內telnet命令其他所以它應該有2條連接的消息,但只有在前一個套接字斷開連接後纔會返回消息。爲什麼是這樣,我該如何去解決這個問題?
您正在打印die語句而不關閉套接字。客戶端仍應該連接 –
但是,爲什麼在我連接到該功能後,該功能不會打印「有人連接」?它總是等待「死」被打印? – Bula
據我所知,它應該打印「連接」,然後暫停4秒,然後打印「死亡」(即使你不關閉插座)。這不是發生了什麼? –