面试题答案
一键面试协议头部字段
- 文件名长度:用于表示文件名的字节数,通常用一个固定长度(如2字节)的无符号整数表示,方便接收端准确知道文件名的长度从而正确解析。
- 文件名:实际的文件名,长度由前面的文件名长度字段确定。
- 文件大小:文件的字节大小,一般用4字节或8字节的无符号整数表示,告知接收端文件总共的大小,以便判断接收是否完整。
发送端构建协议数据包
- 确定文件名长度,并将其转换为特定字节数(如2字节)的二进制表示。
- 将文件名转换为字节数组。
- 将文件大小转换为特定字节数(如4字节或8字节)的二进制表示。
- 按顺序拼接文件名长度、文件名、文件大小,形成协议头部。
- 将文件内容作为协议数据包的主体部分,拼接在协议头部之后,组成完整的协议数据包发送。
接收端解析数据包
- 接收数据包后,先读取固定长度(如2字节)的数据,解析出文件名长度。
- 根据文件名长度,读取相应字节数的数据,解析出文件名。
- 再读取固定长度(如4字节或8字节)的数据,解析出文件大小。
- 开始接收文件内容,根据解析出的文件大小,判断文件接收是否完整。