1 使用广播地址。
2 在服务中每接收一个客户连接请求,建立一个新的Winsock应答。广播时,循环发送消息。

解决方案 »

  1.   


    在服务器端的dataArrival事件中, 把接收到的客户机传来的数据,转发给所有客户机。for i=1 to sckserver.count
    if sckserver(i).state<>sckclosed then
    sckserver(i).senddata sdata
    endif
    next i
      

  2.   

    http://edu.yn.cninfo.net/T_examination/news/14/01-3-30/news_3913_0.shtml
      

  3.   

    我试验了一下,用Winsock控件使用UDP协议,将服务器端的RemoteHost设为“225.0.0.0”D类组播地址,将客户端的RemoteHost设为服务器端的IP地址,在局域网上实验,只能两台计算机接收,再多就不行了,请问怎样解决一台服务器对多台客户端的数据广播程序。谢谢了!!!!
      

  4.   

    既然是一对多的通讯,最好采用UDP协议
    客户端必须在服务器端进行注册,注册后服务器端用一个COLLECTION记录下客户端的IP与端口,需要广播时直接从COLLECTION中检索客户端然后逐个发送
      

  5.   

    传送数据必须包含命令码
    在数据接受处理函数中:
    select case 命令码
           case 注册信息
                   将用户的信息写入COLLECTION,包括用户IP与PORT
           case 注销信息
                   将该用户信息移除出COLLECTION
           case 广播信息
                   FOR EACH 用户 IN COLLECTION
                       SOCK.REMOTEIP=用户.IP
                       SOCK.remoteport=用户.PORT
                       sock.senddata 广播信息
                   next
    end select   
    大体的结构就是这样,我也还只是一个构想,马上就要做这么一个东西了