【问题标题】:why is an integer type sent upside down?为什么整数类型是颠倒发送的?
【发布时间】:2015-06-13 10:05:34
【问题描述】:

我正在制作一个服务器程序,一个客户端发送了各种数据,如字符串、整数。

当客户端程序向我发送字符串时, 我按常规顺序收到。

例如,

一位客户给我发了“你好” 我已收到 h e l l o \0

但是,客户向我发送了 12345 这样的整数 我收到的是颠倒的。

例如)

客户想给我发 12345(整数类型) 他或她发送了 '30''39''\0' 我收到了 '57''48''\0' ('57' 是 '0x39' 的十进制,'48' 是 '0x30' 的十进制)

我发现该值被颠倒发送,我认为这是因为网络字节顺序。 但是,我没有使用网络,我有客户端和服务器程序。 换句话说, 我给自己发送了数据,但我的电脑没有连接到互联网。

我使用 c 语言的邮件槽与客户进行通信。 为什么整数类型是倒置发送的?

【问题讨论】:

  • 发送的和收到的一样,所以你可能弄错了0x390x30首先被发送。如果您对十六进制值使用十六进制表示法而不是为十六进制和十进制写撇号,这将使您的问题更清楚。同时显示您发送和接收的代码。

标签: c endianness mailslot


【解决方案1】:

与套接字相关的函数使用 big-endian 来存储某些函数的整数。您必须使用可用的函数来翻译它们,或者您可以编写自己的宏来完成,这并不难。

【讨论】:

    猜你喜欢
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 2013-10-02
    • 2011-07-11
    相关资源
    最近更新 更多