dummyfork 2022-01-17 21:20 采纳率: 0%
浏览 29

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

问题遇到的现象和发生背景

如题,比如FTP协议,21端口用于连接,20端口用于传输数据。

FTP-DATA  数据传输完,能否判断是最后一个报文吗?

还是只能通过21端口   服务器应答回来的 226 传输完毕   才能知道当前已经传输结束吗?

如下图,FTP-DATA这里能欧服判断文件已经传输结束?

img

  • 写回答

1条回答 默认 最新

  • 关注

    FTP是文件传输协议,文件传输的时候,会告诉接收端文件一共有多少个字节,接收端按照这个字节数来接收,收够了字节数后就认为文件传输完毕,写文件结束,文件接收成功。
    TCP不仅能传输文件,也能够传输报文。使用TCP的时候,通信双方首先要做到事情是约定好双方通信的数据格式,因为TCP有黏包现象,所以使用TCP传输数据的时候,必须做一个报文头放在数据部分的前方,发送端在发送数据时填写这个报文头(报文头中必须包含的字段是当前完整报文的总长度),接收方通过这个报文头来确定当前报文有多少个字节,这样才能正确的接收一条报文。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月17日

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常