以下の質問のコードを手伝ってくれる人はいますか
Write a multi-threaded Echo Handler in Python.
各スレッドはクライアントからの接続を処理できる必要がありますが、他のスレッドは他のクライアントからの接続を同時に処理します。テストするには、time.sleep() 呼び出しを使用して並行性を確保します。3 ~ 5 スレッドを使用します。各スレッドは、異なるポート番号を処理する必要があります。
私は次のコードを試しました:
` #!/usr/bin/python
import socket
import thread
import time
def Child_thread(clientsocket, (ip,port), id ):
data = "anonymous data"
print "Client with ID %d is now alive" %id
while len(data) > 0:
data = clientsocket.recv(2048)
print "data received from client with ID %d" %id
print "Data recieved is %s" %data
clientsocket.send(data)
print "Closing the connection.... of client with ID %d" %id
print "and port number %d" %port
clientsocket.close()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
sock.bind( ("0.0.0.0", 8001) )
sock.listen(2)
for i in range(5):
print "Server is listening for clients"
(clientsocket, (ip,port) ) = sock.accept()
print "received connection from %s" %ip
print "Received connection from port number %d" %port
print "Starting Echo Server"
thread.start_new_thread(Child_thread, (clientsocket, (ip,port), (i,)))
time.sleep(10)
print "Server is shutting down"
sock.close()`