我现在想弄一个向多个客户广播UDP数据的代码。方案如下:
一、为每个客户弄一个Socket,然后循环用send通过句柄向客户端广播
二、为每个客户弄一个Sockaddr,然后循环用sendto通过地址向客户端广播
三、...................................WriteFile通过句柄向客户端广播
四、...................................WriteFile通过地址向客户端广播
五、...................................WriteFile通过句柄向客户端广播(加上OverLapped)
六、...................................WriteFile通过地址向客户端广播(加上OverLapped)哪一个好呢?头大勒

解决方案 »

  1.   

    只需要向一个组播/广播地址发送UDP包就可以了,比如:192.168.1.255
      

  2.   

    不是这样的,客户在家里通过adsl上网的
      

  3.   

    不好意思,四、六两条不存在的,纯属笔误:)
    现在是send和sendto、writefile哪一个调用快的问题了
    我好像说sendto函数会隐性的调到bind等等,这么说sendto是最慢的一种了
    那么send和writefile了,wsasend是可以用overlappedIO的
      

  4.   

    第一种是用tcp吧。
    第二中会最慢吗?比第一个快吧。
    用wsasendto就可以overlap了啊。
      

  5.   

    ADSL?别想广播了,通过三应该是最快的了!
      

  6.   

    感谢这位仁兄,你提供一下是怎么得出wsasendto发送数据比sendto快就更好勒
      

  7.   

    打算用WsaSendTo了,感谢楼上兄弟
      

  8.   

    sendto内部就是调用的wsasendto,不过后者多加了几个可以异步的参数。但是UDP里的异步似乎意义不太大。
      

  9.   

    一、为每个客户弄一个Socket,然后循环用send通过句柄向客户端广播
    //udp没必要
    二、为每个客户弄一个Sockaddr,然后循环用sendto通过地址向客户端广播
    //一般就这样子
    三、...................................WriteFile通过句柄向客户端广播
    //WriteFile跟sendto内部调用一样
    四、...................................WriteFile通过地址向客户端广播
    //WriteFile跟sendto内部调用一样
    五、...................................WriteFile通过句柄向客户端广播(加上OverLapped)
    //WriteFile跟sendto内部调用一样,这跟WSASednto一样的
    六、...................................WriteFile通过地址向客户端广播(加上OverLapped)
    //WriteFile跟sendto内部调用一样,这跟WSASednto一样的