首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制vs文本协议

二进制vs文本协议
EN

Stack Overflow用户
提问于 2010-03-03 00:06:54
回答 7查看 13.9K关注 0票数 22

我想知道基于二进制和基于文本的协议有什么不同。我读到二进制协议处理起来更紧凑/更快。这是如何实现的呢?因为你必须发送相同数量的数据?不是吗?

例如,字符串"hello“在二进制格式中的大小有何不同?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-03-03 00:10:53

如果你所做的一切都是在传输文本,那么是的,两者之间的区别并不是很大。但请考虑尝试传输以下内容:

  • Numbers -使用数字的字符串表示,还是二进制?
  • 数据结构-如何在文本协议中表示字段的开始和结束?有时,具有固定长度字段的二进制协议更紧凑。
票数 22
EN

Stack Overflow用户

发布于 2010-03-03 01:48:59

文本协议在可读性、易于重新实现和易于调试方面更好。二进制协议更紧凑。

但是,您可以使用像LZO或Zlib这样的库来压缩文本,这几乎与二进制文件一样紧凑(对压缩/解压缩的性能影响很小)。

你可以在这里阅读更多关于这个主题的信息:

http://www.faqs.org/docs/artu/ch05s01.html

票数 11
EN

Stack Overflow用户

发布于 2010-03-03 00:09:39

字符串"hello“本身在大小上没有区别。大小/性能的差异在于序列化引入的附加信息(序列化是程序如何表示要传输的数据,以便一旦数据到达管道的另一端就可以重新构造)。

例如,当使用XML (一种文本序列化方法)在.NET中序列化以下内容时:

代码语言:javascript
复制
string helloWorld = "Hello World!";

你可能会得到类似这样的结果(我知道这并不准确):

代码语言:javascript
复制
<helloWorld type="String">Hello World!</helloWorld>

而二进制序列化将能够在没有所有额外标记的情况下以二进制原生地表示该数据。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2364581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档