Copy codeThe Code is as follows:
Import socket
Import Queue
Import threading
Def worker ():
While True:
I = q. get ()
Conn = I [0]
Addr = I [1]
While 1:
Sms = conn. recv (1024)
If sms! = "":
Print "Message from (" + str (addr [0]) + ":" + str (addr [1]) + "):" + sms
Else:
Print "Close the Connection from (" + str (addr [0]) + ":" + str (addr [1]) + ")"
Conn. close ()
Break
Q. task_done ()
If _ name __= = "_ main __":
Q = Queue. Queue ()
Thread_num = 5000
S = socket. socket (socket. AF_INET, socket. SOCK_STREAM)
S. setsockopt (socket. SOL_SOCKET, socket. SO_REUSEADDR, 1)
S. bind ("", 4242 ))
S. listen (50000)
Print "Server is listening at 4242"
For _ in range (0, thread_num ):
T = threading. Thread (target = worker)
T. setDaemon (1)
T. start ()
While 1:
Conn, addr = s. accept ()
Print "Connection come from (" + str (addr [0]) + ":" + str (addr [1]) + ")"
Q. put (conn, addr ))
Q. join ()