tcp ip 通信  一个服务端向多个客户端(1000个)发送数据
socket通信  一个服务端向多个客户端(1000个)发送数据  ,服务端每秒钟向客户端发送数据,怎么样能使客户端同时接收到的数据,即第一个客户端  和最后一个客户端接收到的数据的时间不能相关太大,控制在1秒内。
现在出现的情况是它们相关几十秒。
代码如下:
server:
  while(True){
           TcpClient client = listener.AcceptTcpClient();
            Console.WriteLine("Client connected:{0}<--{1}", client.Client.LocalEndPoint, client.Client.RemoteEndPoint);
           RemoteClient remoteClient = new RemoteClient(client);
}
RemoteClient :
  public RemoteClient(TcpClient client)
         {
             this.client = client;
             remoteStream = client.GetStream();
             buffer = new byte[bufferSize];
             bufferSendToClient = new byte[bufferSize];                                   
             Thread thread = new Thread(SendMessageToClient);
             thread.IsBackground = true;
             thread.Start();
}
client:
  for (int i = 0; i < 1000; i++)
             {
                 int clientId = i + 1;
                 ClientToServer client = new ClientToServer();                             
}
ClientToServer :
在这里是异步读取服务端发过来的数据。
------解决方案--------------------为什么不采UDP的方式,然后使用组播?
------解决方案--------------------
你测试的时候所谓的   for (int i = 0; i < 1000; i++)  这段就应该是并发的,怎么能够顺序呢?
就算人家超市给你开了1000个收银台并行打发顾客,可是你这1000个顾客硬要排成一队而且一个顾客购物完毕下一个顾客才进入超市,这不就是悲催的顾客(client)嘛。
------解决方案--------------------在局域网内测试下速度,如果相差无几,可能是网络问题~
------解决方案--------------------我从来不使用TPL,这是有实际的测试和正式的使用经验,TPL慢的不适应半点。而且它变成几乎是一点也没有精简。
正常地使用传统的线程(或者调用系统线程池)代码,远离TPL。
------解决方案--------------------1000个客户端 最好用组播吧