C# 网络效率:发送字符串还是整数?

C# 网络效率:发送字符串还是整数?,c#,string,sockets,networking,integer,C#,String,Sockets,Networking,Integer,假设我想通过网络将号码1发送给我的客户, 如果我使用字符串而不是32位整数会更好吗 因为我只有一个要发送的字符,这意味着如果我使用字符串,我将通过网络发送一个字节,对吗 如果我使用一个32位的整数,这意味着我在网络上发送了4字节的数据,对吗 如果我哪里错了,请纠正我 这意味着如果我使用字符串,我将通过网络发送1字节,对吗 如果将其编码为ASCII,而不包含终止和长度信息,则为“是” 特别是如果你设法神奇地避免网络开销。1个数字仍然是TCP数据包,它仍然是以太网数据包。如果您的数字总是适合1个字符

假设我想通过网络将号码1发送给我的客户, 如果我使用字符串而不是32位整数会更好吗

因为我只有一个要发送的字符,这意味着如果我使用字符串,我将通过网络发送一个字节,对吗

如果我使用一个32位的整数,这意味着我在网络上发送了4字节的数据,对吗

如果我哪里错了,请纠正我

这意味着如果我使用字符串,我将通过网络发送1字节,对吗

如果将其编码为ASCII,而不包含终止和长度信息,则为“是”


特别是如果你设法神奇地避免网络开销。1个数字仍然是TCP数据包,它仍然是以太网数据包。

如果您的数字总是适合1个字符,为什么不将其作为字节发送呢?对不起,我要发送的数据并不总是1个字符。在这种情况下,二进制通常比字符串更紧凑,以表示整数(只要整数超过4位)我忍不住认为这是一个微观优化。通过网络发送任何字节(1或4)的开销和延迟都是巨大的。我能想象的唯一有用的情况是,如果你说的是一次存储或传输数百万或更多这样的数字。我目前正在编写一个游戏服务器,可以同时承载数千个客户端,我希望尽可能地压缩每一点性能,这个优化真的那么微不足道吗?