服务器是使用socketserver实现的多客户端TCP连接,由于服务器执行任务会产生多条消息,把消息放到queue队列中,客户端每隔0.5s轮询获取,单客户端连接获取没问题,但多客户端就会出现queue队列数据部分出现在客户端A,部分出现在客户端B
想请问有没有什么好的想法解决这个问题?
服务器是使用socketserver实现的多客户端TCP连接,由于服务器执行任务会产生多条消息,把消息放到queue队列中,客户端每隔0.5s轮询获取,单客户端连接获取没问题,但多客户端就会出现queue队列数据部分出现在客户端A,部分出现在客户端B
想请问有没有什么好的想法解决这个问题?
服务器的消息字节串里带上【客户端ip地址前缀】,然后存进queue;
客户端从queue中get()到消息后,检测ip前缀是否与自己相符,若不相符则重新put()进queue中。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答463 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
我已经解决了这个问题:
每个客户端访问时创建一个queue队列对象,把queue传递给客户端请求时调用的函数,
这样所有客户端请求的就是独立的队列对象,互不影响。