通过tcp golang发送多个文件 - 简单协议

时间:2017-07-26 18:16:52

标签: file sockets go tcp protocols

我正在尝试构建一个简单的协议,以便在golang中通过TCP发送文件。在阅读了一些内容之后,我决定使用GOB包发送一个包含有关正在发送的文件的信息的标题,然后使用原始套接字进行归档。消息之间我正在使用分隔符(“/ r / n”) 所以sendflow看起来像这样: 客户端(发送文件)(C) 服务器(S)

  • (C)读取文件元数据(文件大小,文件名等)
  • (C)将文件元数据编码到struct
  • (C)初始化与服务器的连接
  • (C)发送编码的gob
  • (S)接收一个gob并解码
  • (C)发送分隔符
  • (S)收到分隔符
  • (C)使用缓冲区(1024)
  • 开始发送文件
  • (S)开始接收文件并保存到创建的文件,直到超过标题消息的大小。
  • (C)发送分隔符
  • (S)收到分隔符
  • (C)关闭连接

希望我解释得很清楚。一个问题是,在我的单元测试中,当我检查文件的校验和时,我有错误的文件,看起来有时也会添加分隔符。我的问题是,如果我的简单协议确实有意义,如果不是,有人可以给我一些建议如何构建它以保持健壮和可靠。

提前致谢!

0 个答案:

没有答案