【发布时间】:2014-10-14 11:38:52
【问题描述】:
我有许多 TCP 客户端需要向服务器发送多条消息。在服务器端,我写道:
def listenConnections():
thread_recieve = Thread(target=recieveInstruction)
while(1):
lstn = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# port = int(sys.argv[1]) # server port number
lstn.bind(('IP', PORT))
lstn.listen(5)
global clnt
(clnt,ap) = lstn.accept()
thread_recieve.start()
def recieveInstruction():
while (1):
try:
message = clnt.recv(1024)
print message
except:
pass
所以发生的情况是,每次一个客户端连接时,他都能够发送 1 条消息并且服务器会读取它。但是当另一个客户端连接或同一个客户端尝试发送另一条消息时,它就不起作用了。客户端非常可靠,我似乎不知道如何使用多次创建的连接来接收消息。这就是为什么我尝试了多线程,但这也不起作用。顺便说一句,我也在一个线程上运行listenConnections。我愿意:
def main():
t = Thread(target=listenConnections)
t.start()
main()
【问题讨论】:
标签: python multithreading tcp client tcpserver