开发者社区> 问答> 正文

LINUX网络编程,TCP传输协议如何判断传输结束?

例如FTP, 客户端发送RETR命令给服务器获取文件,服务器怎么知道什么时候文件传输完成? 抓包看,RETR命令发送后,报文中并没有带上文件字节数,服务怎么知道长度是多少?捕获.JPG

展开
收起
馒头jarvis 2022-03-02 21:37:39 22369 0
17 条回答
写回答
取消 提交回答
  • 学习下

    2022-04-21 09:23:47
    赞同 展开评论 打赏
  • 你是想从报文中看还是代码中看?TCP和FTP方式不同,@kevinhsu解释的很清楚,代码中接收数据需要分段获取,直至length=0即可判断本次传输完毕

    2022-03-11 15:55:21
    赞同 展开评论 打赏
  • 学习下

    2022-03-11 13:26:36
    赞同 展开评论 打赏
  • 6

    2022-03-11 12:36:13
    赞同 展开评论 打赏
  • 6

    2022-03-11 12:27:52
    赞同 展开评论 打赏
  • 微信搜索「龙哥手记」,回复关键字:见面礼

    看计网黑皮书

    2022-03-11 10:55:44
    赞同 展开评论 打赏
  • 学习学习

    2022-03-11 09:03:01
    赞同 展开评论 打赏
  • 不清楚

    2022-03-10 19:21:04
    赞同 展开评论 打赏
  • 考虑

    2022-03-10 12:15:47
    赞同 展开评论 打赏
  • 你到底是问什么?ftp协议还是tcp协议?tcp是第四层传输层的协议,ftp是第七层应用层的协议。tcp的结束是四次挥手。ftp的传送文件结束是服务器端控制的,服务器端会计算发了多少,有没有发完,发完了主动关闭数据连接。当客户向服务器发送流形式的文件时,需要客户来关闭连接(它给服务器一个文件结束的通知)

    2022-03-09 20:51:48
    赞同 展开评论 打赏
  • 66

    2022-03-09 15:55:39
    赞同 展开评论 打赏
  • 丢尼

    2022-03-09 15:36:59
    赞同 展开评论 打赏
  • 格物致知

    用Nginx代理的话,貌似有日志

    2022-03-09 10:05:58
    赞同 展开评论 打赏
  • 学习中

    2022-03-09 08:03:14
    赞同 展开评论 打赏
  • 哈哈

    2022-03-08 18:33:25
    赞同 展开评论 打赏
  • len()函数判断字符串长度

    2022-03-03 08:00:37
    赞同 展开评论 打赏
  • 下载的话 服务器端会把请求的文件返回给客户端,FTP-data里就是大小

    2022-03-03 00:13:59
    赞同 展开评论 打赏
滑动查看更多
问答排行榜
最热
最新

相关电子书

更多
可编程网络视角的网络创新研究 立即下载
可编程网络和SDN3.0 立即下载
阿里云栖开发者沙龙PHP技术专场-深入浅出网络编程与swoole内核-吴镇宇 立即下载