# 循环遍历每个client对应socket接收消息放入到消息队列中 def receiver(): print "receiver线程启动" while True: for keyTemp in clients.keys(): sock = clients[keyTemp] try: data = sock.recv(BufferSize) except Exception: pass if data is None: continue elif data =="": continue else: print clients.keys() print "接收到新消息"+keyTemp+":"+data Message = {} Message[keyTemp] = data MessageQueue.append(Message) print MessageQueue print MessageQueue[0] 这个代码是用python写了,感觉原理差不多吧! 问题:当我有两个用户在线["123","456"]时这个循环会遍历用户名所映射的socket
通过sock.recv(BufferSize)这个语句接收消息 当用户名为456的发送消息如:“你好!世界”我的服务器是不能接收到这个消息 只有当用户名为123的用户发送完消息后服务器才能才能接受到用户456发送的消息 即:循环会一直被阻塞,知道接收到消息才能执行。 这个问题应该怎么解决
杨__羊羊
相关分类