开发语言Delphi;功能:主机发信号,由于客户机不知道主机什么时候发信号(1分钟内),客户机在1分钟内(100台左右)不停监测主机发出的信号,根据信号,在客户机作出相应的动作
      网络环境:互联网(广域网)
      精度最好精确到秒。之前的做法是,通过Web服务器修改一个txt文件,客户机用TIdHTTP不停的读取一个网址http://www.xxx.com/a.txt,根据内容判断。但这样发现一是客户机TIdHTTP不停的读取有问题,主机的web服务器也会有问题。谁还有什么办法吗?以前在一个局域网的话用过Tcp的连接,开端口连接,设一台服务器主机

解决方案 »

  1.   

    TCP连接是可以的。WINSOCK在这方面足够强大。
      

  2.   

    服务器使用TServerSocket、客户端使用TClientSocket,就可以让服务器向客户端“广播”了。至于什么情况下广播,就要视乎你的实际情况了。
      

  3.   

    TCP通讯无法精确到秒的,可以使用SOCKET长连接,然后由服务主动下发。
      

  4.   

    khfp...
      

  5.   

    主机用UDP给客户机发信号就可以了。
      

  6.   

    UDP包不安全,丢包不知
      

  7.   

    这是很容易解决的,可以模仿TCP的三次握手方式,主机发送命令后,客户机收到后要有一个应答,主机收到应答(这是正常的情况)就知道命令发送成功了,如果在一定时间之内(比如2~3秒)没有收到应答,就重发一次命令,还没有收到应答,就认为是该客户机或者网络有问题,记录下来就可以了。
      

  8.   

      Idtcpclient/IdTCPServer配合,不会漏掉一个。当然除连接或读写超时除外。
      

  9.   

       很简单的。 Idtcpclient/IdTCPServer配合,定好通讯协议就可以了。