Posted in Python onNovember 26, 2013
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()
python连接池实现示例程序
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@