用indy10的TIdTcpClient, TIdTcpServer实现多个客户端向服务端请求数据,这些数据可能是文件也可能是数据问题:比如我要传一块内存中的数据或者是一个文件,但这个数据比较大比如说有4MB或者更大,这时是否要分多次传输?(比如一次向客户端传4K)如果分多次传输,那么我怎么知道哪个客户端对应读哪块内存的数据?它们分别读了多少,读到哪个位置?一般你们是怎么处理这样的问题的?

解决方案 »

  1.   

    只有一个客户端接收,不是很多个,当然你可以使用多个线程。
    关于文件分开传送,可以参考hi.baidu.com/mic_soft,里面有个大文件传输的例子。用的不是id,楼主不要照抄代码。
      

  2.   

    定义一个record,记录传到哪一段了,这次要传的内容等等,每次发送整个record过去
      

  3.   

    INDY是一个连接一个线程,你需要对每个连接做处理,另外传文件需要定协议,建议参考FTP/HTTP协议,我们参考的是HTTP协议,把数据和控制命令一起发送。