在通过出具通道传送数据时(目录的数据或文件内容的数据),
如何判断对方已经把数据全部发完?从FTP协议上看没有同步的控制。
发送端不停的使用send发送数据,而在整个发送过程中没有和接收发作确认,这样在传大量数据时是否会有问题,比如来不及接收等。如果有那么FTP如何解决呢?
以上两个问题在我看到的例子程序中没有体现。

解决方案 »

  1.   

    我是这样认为的:
    1、TCP/IP协议有自己的校验机制。从网络硬件角度来讲网线中的1、2、3、6是用来传输数据,4、5用来传输校验码。在数据的传输过程中,接受方不停的发送已经收到的信号给发送方。
    2、如何判断是否全部发送完成的问题:在发送的开始,已经将发送的数据大小和包数通知了接收方,所有这些东西都是TCP/IP完成的。FTP是应用层的协议只不过是在IP包的包头加入了表示自己是FTP。
    具体的东西我记得不是很清楚了,你可以参考一下清华出的影印版的《计算机网络》。
      

  2.   

    你说“已经将发送的数据大小和包数通知了接收方”,那么如何通知?用ftp的命令么,是哪一个命令阿?还有自己做的ftp客户端,应该可以和任何一个fpt的server端联的。那么那个server每次发多少数据我是不知道的阿,事先没有商量好啊。
    请关注,谢谢。
      

  3.   

    FTP允许3种文件结构:文件式结构、记录结构、页结构。如果没有使用STRU命令则文件式结构为默认值。
    IP包的大小你自己能控制吗?——不能。
      

  4.   

    FTP的传输模式也是3种:流模式、块模式、压缩模式。
    文件式结构是以流模式传输的,数据的差错控制是通过TCP实现的。
    呵呵,现在明白了吗?
      

  5.   

    不明白。你说“已经将发送的数据大小和包数通知了接收方”,那么如何通知?用ftp的命令么,是哪一个命令阿?
    你又说“如果没有使用STRU命令则文件式结构为默认值”,这个默认值是多大?是每次发送的字节数么?