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