Python:从数据库向一个客户机发送数据

Python:从数据库向一个客户机发送数据,python,tcp,Python,Tcp,我有一个python脚本,它从客户机接收tcp数据,我想向特定的客户机发送响应(我处理500多个)。这个命令来自一个mysql数据库,我通过一个字典处理clientsocket,但是当它接收到大量连接时,脚本就停止了 如何在mysql数据库中存储clientsocket,或者哪种方法是处理clientsocket的最佳方法 我的代码是: import thread from socket import * def sendCommand(): try: for clie

我有一个python脚本,它从客户机接收tcp数据,我想向特定的客户机发送响应(我处理500多个)。这个命令来自一个mysql数据库,我通过一个字典处理clientsocket,但是当它接收到大量连接时,脚本就停止了

如何在mysql数据库中存储clientsocket,或者哪种方法是处理clientsocket的最佳方法

我的代码是:

import thread
from socket import *

def sendCommand():
    try:
        for clientsocket,id_client in conn_dict.iteritems():
            if id_cliente == "TEST_from_mysql_db":
                clientsocket.send("ACK SEND")
                break
    except:
        print "NO"

def handler(clientsocket, clientaddr):
    print "Accepted connection from: ", clientaddr
    while 1:
        data = clientsocket.recv(buf)
        if not data:
            break
        else:
            conn_dict[clientsocket] = id_client
            sendCommand()
    clientsocket.close()

if __name__ == "__main__":

    conn_dict = dict()
    host = str("XXX.XXX.XXX.XXX")
    port = XXX
    buf = 1024

    addr = (host, port)
    serversocket = socket(AF_INET, SOCK_STREAM)
    serversocket.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
    serversocket.bind(addr)
    serversocket.listen(2)

    while 1:
        print "Server is listening for connections\n"
        clientsocket, clientaddr = serversocket.accept()
        thread.start_new_thread(handler, (clientsocket, clientaddr))
    serversocket.close()

“脚本已关闭”是什么意思?为什么不使用顺序策略来处理多个连接?如果不创建新线程,请使用SELECT。挂起的连接排队的队列大小仅为2,这是使用listen函数分配的。如果您的队列已满,并且出现了新连接,客户端将收到一个ECONNREFUSED错误代码David Schwartz:停止循环(进程死亡)@user1034749您能举一个例子来处理id_客户端和clientsocket吗?什么是“脚本已关闭”意思?为什么不使用顺序策略来处理许多连接而不创建新线程,使用SELECT将挂起的连接排入队列的队列大小仅为2,该大小是使用listen函数分配的。如果您的队列已满,并且出现了新连接,客户端将收到一个EConRefused错误代码David Schwartz:停止循环(进程将终止)@user1034749您能举个例子来处理id_客户端和clientsocket吗?