有三台机,一台作为服务器端,另两台作为客户端。服务器端下指令(即传输相关文件)给客户端,需要两台客户端机能差不多同时响应。两台机都收到后,再反馈信息给服务器端。
现在拟采用UDP协议(因为要同时响应,而且距离相对较远要求不去操作客户端,只在服务器端操作),进行广播的方式,但服务器端发送过后,只有一台客户端机能收到(两台机装同样的客户端软件),还有,客户端反馈的信息我怎么接收,要采用队列吗?请高手指点。谢谢

解决方案 »

  1.   

    如果要广播需要用 setsockopt 设置 SO_BROADCAST 选项
      

  2.   

    BOOL on = TRUE;
    setsockopt(s, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)); 接收客户端应答和客户端接收服务器端应答是相同的,无论以何种方式,只要能够控制到就可以了
      

  3.   

    既然是传输文件为什么不采用TCP?既然要客户端反馈,为什么不作成C/S模式?而是广播模式。
    丢包得问题可以采用sniffer跟踪一下。
      

  4.   

    回楼上:不采用TCP是因为我不会去操作客户端,只是在远程的服务器端进行相关操作,客户端只是解释执行。
    我说采用队列,是想知道我收到的信息中,包括有两台客户端机的信息。如果用BUF,则会出现覆盖情况。
    我现在的情况是能控制其中一台客户端机,但另一台收不到数据,请问是不是配置端口的问题,因为两个客户端是同一个软件在运行。