我在java中编写了一个处理多个并发TCP连接(客户端)的多线程套接字服务器,每个客户端都有一个单独的线程。 我必须将来自任何客户端的特殊类型的数据包分发给所有其他连接的客户端。这是我的服务器类的片段
public class MyServer {
public List<MyClient> clients;
public void distributePacket(MyPacket pkt){
//implementation for sending packet to each connected client
}
}
我目前的distributePacket实现就像这样
for (int a=0;a<clients.size();a++){
if(clients.get(a).getId()!=pkt.getClientId(){
clients.get(a).write(pkt.data,pkt.length);
}
}
但我认为这会降低大量客户的性能。
你们可以建议更合适的逻辑来完成这项任务吗?感谢