我使用的是TIdTrivialFTPServer控件。但其只有在传输结束时才有事件触发,
传输过程中没有事件。我想做个进度条都没法。请高手指教 

解决方案 »

  1.   

    Upd是数据包,和tcp的流形式不一样,客户端每发一个包,服务器收到这个包,OnUDPRead就会触发一次,如果你要发一个比包大的文件,客户端就要拆分成多个包,发送多次,这样才能持续触发OnUDPRead形成过程。
      

  2.   

    udp本身是不可靠的,所以得你自己控制可靠性,自己给包加上序列合和校验,然后发出去,客户端接收到包后检验排序,有错再请求服务器重传。这样效率上可能不怎样,为什么不用tcp呢。TIdTrivialFTPServer是继承自udp的。
      

  3.   

    因为客户端不是我做的,也不允许我做,我只能迎合它。过程是通过串口输入一个tftp命令,它再到我的服务器上来取文件。
      

  4.   

    UDP不可靠。。所以没验证,
    TCP是有三次握手的。。