描述:
       我用TClientSocket和TServerSocket做了一个软件的自动升级,是C/S模式的,当S端打开时,运行C端可以检测是否需要升级,但同一时间只能升级一个客户端程序,当有两台机器或以上申请升级的时候,原来已经在升级的事件就会被中断,导致升级失败。
求教:
       如何实现多台客户机同步升级?我的想法是服务器上每接收到一个客户端的升级请求便创建一个单独的线程与之交互,这样,各个客户机升级时可以互不干涉。可我却不知道怎么样把TClientSocket的OnRead事件加入到线程当中。各位知道怎么解决的,请不吝赐教。如果有更好的办法实现多台机器同步升级,也请告之小弟,谢谢啦!
注:我是初次接触多线程同步处理的问题,请朋友们不吝赐教

解决方案 »

  1.   

    用FTP来升级吧,不用考虑线程阿那么多的东西,你只需要写客户端
      

  2.   

    同上。。我做的是ftp升级。目前运行的还不错。通过ini文件进行版本检查。不过唯一的小麻烦,就是升级升级程序本身。虽然是解决了。但觉得不太完美。
      

  3.   

    不过唯一的小麻烦,就是升级升级程序本身。---------
    你是如何解决的???
    不过用http 协议更好点,用ftp 有个用户名与密码问题。用 http 用 ICS 里的 THttpClient 控件,很方便的说
      

  4.   

    http 是最好的解决方法了。在服务器上发一个 xml 与相关升级包,先读 xml 来判断要下载的东东,再做升级。
    就是 就是升级升级程序本身 这个问题我还没想到好的方法,是不是建一个 bat ,用 CreateProcess 来运行,然后关闭自己,让 bat 来做更新?