求教服务端定时给所有客户端发信出现冲突的解决办法
服务端与客户端之间采用tcp/ip进行通讯,最大连接客户端100台;
服务端要给客户端定时发送更新信息,因为信息的种类不同所以需要分成2种情况进行发送;
情况a:每1分钟检查一次如果有更新就给所有客户端发送信息
情况b:每2分钟检查一次如果有更新就给所有客户端发送信息
所以我开了2条线程来分别处理这两种情况。
现在问题是因为连接的客户端有100台,而且更新信息有可能比较大要分包发送,给每个客户端发送一次完整信息都要一段时间,如果这时候a和b都要给客户端发送信息就会产生冲突,更有可能这时候客户端还向服务端发送了请求要求服务端返回需要的信息。这样就在同一段时间内要给同一客户端发送三种不同的信息(都是在同一socket,和同一端口下)。。。请问怎么处理这种情况才能保证所有信息都准确地发送给客户端?(难道需要多开几个连接么?)
另外因为我是把所有客户端的socket都存放在list列表里,全体发送信息的时候需要遍历一遍list,这样发送的时候会有先后顺序。而且必须等前一个发送完了才能发送下一个,有没有办法同时分别给每个客户端发送信息呢?这样可以不用等待节省时间。。希望高手能帮帮忙,给点思路,给些建议,当然最好能给些例子或者资料!