gpt4 book ai didi

c++ - C/C++ 字节顺序和 tcp 套接字

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:37 25 4
gpt4 key购买 nike

我有一个关于字节序及其如何影响与 C/C++ 的 tcp 套接字通信的一般概念性问题。这是一个例子:

您有两台服务器与 tcp 套接字通信,一台使用大端,另一台使用小端。如果您通过套接字从一台服务器向另一台服务器发送一个整数,我知道字节顺序是相反的,整数将不会打印出预期的内容。正确的?我在某个地方看到(我再也找不到哪里了)如果你通过套接字字节顺序发送一个 char 不会改变值并且它会按预期打印。这个对吗?如果是这样,为什么?我觉得我以前做过这种事,但我可能是错觉了。

谁能帮我解决这个问题?

谢谢。

编辑:是不是因为char只有1个字节?

最佳答案

考虑每种数据类型的大小。

整数通常为四个字节,您可以将其视为并排的四个单独字节。体系结构的字节顺序决定了最高有效字节是四个字节中的第一个还是最后一个。然而,一个字符只有一个字节。据我了解,字节序不会影响每个字节中的位顺序(请参阅 Wikipedia 的字节序页面上的图片)。

然而,一个 char 只有一个字节,所以没有其他顺序(假设我是正确的,位没有被字节顺序修改)。

如果您通过套接字发送一个字符,那么它在两台机器上都是一个字节。如果您通过套接字发送一个 int,因为它是四个字节,根据字节顺序,一台机器可能会以与另一台不同的顺序解释字节。您应该设置一个简单的方法来测试它并返回一些结果!

关于c++ - C/C++ 字节顺序和 tcp 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22366764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com