我正在编写一个通过TCP层发送文件的协议。命令通常如何与有效负载分开?我事先知道有效载荷有多大,我应该预先发送长度吗?
我也在考虑使用HTTP来传输文件,是否会减少耗时的任何意见?我正在使用.NET,因此底层协议已经运行良好。
答案 0 :(得分:1)
使用更高级别的协议。这将为您节省大量时间。 HTTP听起来非常合适,因为您似乎有一个请求 - 响应模式。
编写TCP协议很难。做到最好的最好方法是:不要这样做。
如果HTTP不适合您,请调查协议缓冲区。
答案 1 :(得分:1)
命令通常如何与有效负载分开?我事先知道 有效载荷有多大,我应该预先发送长度吗?
是。典型的模式是发送固定长度的报头(例如,以大端整数格式的字节数),然后是实际的数据字节(并且可选地,根据需要重复)。一定要为标题使用固定宽度类型(例如uint64_t而不是unsigned long),因为你(可能)就像你的协议一样,无论编译什么机器都可以使用它。
我也在考虑使用HTTP来传输文件 关于这是否会耗费更少时间的意见?我正在使用.NET 所以底层协议已经运行良好。
无论哪种方式都可以。使用你最熟悉的任何东西。