zl程序教程

您现在的位置是:首页 >  后端

当前栏目

python连接池实现示例程序

Python程序 实现 示例 连接池
2023-06-13 09:15:12 时间

复制代码代码如下:


importsocket
importQueue
importthreading

defworker():
   whileTrue:
       i=q.get()
       conn=i[0]
       addr=i[1]
       while1:
           sms=conn.recv(1024)
           ifsms!="":
               print"Messagefrom("+str(addr[0])+":"+str(addr[1])+"):"+sms
           else:
               print"ClosetheConnectionfrom("+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"Serverislisteningat4242"

   for_inrange(0,thread_num):
       t=threading.Thread(target=worker)
       t.setDaemon(1)
       t.start()

   while1:
       conn,addr=s.accept()
       print"Connectioncomefrom("+str(addr[0])+":"+str(addr[1])+")"
       q.put((conn,addr))

   q.join()