2013-03-12 12 views
1

标题说明了一切。基本上我使用TCP进行客户端 - 服务器设置,我想知道在通过tcp发送数据之前是否有将字符串转换为二进制文件的优势?通过字符串发送二进制数据包有优势吗?

+0

字符串是二进制的。他们通常被认为是人类可读的。 – 2013-03-12 20:10:48

+0

所以没关系。我猜想将字符串转换为二进制文件会浪费处理能力,对吗? – pandoragami 2013-03-12 20:11:27

+0

取决于。如果你的字符串是十六进制值的文本表示,例如'$ txt ='0x12 0x23 0x34'等等,你可以通过转换为原始数值来保存几个字节,发送3个字节而不是14个。 – 2013-03-12 20:12:41

回答

2

字符串是二进制数据或至少可以很容易地转换到这样的,字节[],与

static byte[] GetStringBytes(string str) 
{ 
    byte[] bytes = new byte[str.Length * sizeof(char)]; 
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length); 
    return bytes; 
} 

如果压缩/编码发送的数据,无论它开始时寿命为一个字符串或二进制数据你很可能会发送相同的总字节数。

+0

啊,评论者打败了我。说过同样的话! – MarcF 2013-03-12 20:15:06

1

在绝大多数情况下没有真正的优势。另外,二进制数据往往更依赖于平台,所以如果你想将你的客户端/服务器扩展到多平台环境,你最好不要使用字符串。

相关问题