利用socket实现一个服务器给多个客户端不停的发送数据的有关问题

利用socket实现一个服务器给多个客户端不停的发送数据的问题
利用VC、socket实现一个服务器给多个客户端不停的发送数据,每连接一个客户端就建立一个发送线程,每个发送线程每Sleep(10)发送一次。(本机测试)
问题:
1、连接的客户端越多,客户端接收的数据就越慢,4个客户端时基本已经慢的很,照理说线程之间不是应该互不干扰吗,又没有用到共享数据?
2、如果我实现的方法不对,这种一发多的情况,利用多线程是怎么实现高效率发送的?



------解决方案--------------------
1.先建立一个全局缓冲区,把视频流数据放入其中,然后创建临界区CRITICAL_SECTION g_cs
2.在你程序初始化时初始化临界区变量g_cs ,InitializeCriticalSection(&cs) 可以放在InitialDialog()或InitInstance()里
3.之后在你每个客户端发送线程的send()函数前加EnterCriticalSection(&cs) ;//加锁,发送逻辑完毕后在send()后加 LeaveCriticalSection(&cs);//解锁,这样就可以保证当一个客户端线程在访问全局视频流缓冲时,其他线程均处于等待状态,一旦
某个线程释放了锁,其他线程就会立刻得到这把锁,然后开始send(),相比之下,这种同步方式其实和SetEvent差不多,只是逻辑会
比较清晰一些
4.由于你只是读取数据进行发送,不会修改全局缓冲的值,这样的话不用线程同步也是可以的,所有线程可以同时发送,这样效率会高很多