服务器已经连接了5个客户端,并且将每个连接的socket值添加到数组变量 SOCKETS_CLIENT中,
然后就想5个客户端发送数据,结果发现好像只有最近一次连接的客户端收到数据,而其它客户端没有收到数据?这是什么原因?
for (i=0;i<5;i++)
 {                       
   send(SOCKETS_CLIENT[i],buffData,8,0);                                                                    
 }

解决方案 »

  1.   

    调用GetLastError  拿到错误代码  再一个一个解决  
      

  2.   

    我是通过WSAAsyncSelect写了段程序。当客户端连接到服务器端后,将连接的socket值存入数组变量SOCKETS_CLIENT中,当多个客户端连接服务器后,当然数组变量SOCKETS_CLIENT有多个连接的套接字的数值,然后通过循环来给每个客户端发送数据。结果就是只有一个客户端接收到数据。
      

  3.   

    for (i=0;i <5;i++) 
    {                      
      send(SOCKETS_CLIENT[i],buffData,8,0);                                                                    
    }
    由这几句看不出问题,最好断点试下,看发了几条,同时看下socket_client中有多少数据,调试是发现错误的最好手段
      

  4.   

    我估计是,其实数组里面的SOCKET值都是一个,都写到一个位置去了,才出现这种问题的。
    比如5个SOCKET 都写到数组里面元素[0]去了。
      

  5.   

    楼上正解, 应该是装SOCKET的时候, 没往后移