Vij*_*jay 3 c++ sockets endianness
在C++中,我们使用网络上的套接字发送数据.我知道我们需要使用htons(),ntohs()函数来维护字节顺序大端和小端.
支持我们有以下数据要发送
int roll;
int id;
char name[100];
Run Code Online (Sandbox Code Playgroud)
这也可以包含在struct中.
我的困惑在于,对于roll和id,我们可以使用htons()函数.但对于字符串名称,我们应该怎样以及应该如何做呢?我们需要使用任何这样的功能吗?它会在mac,intel和其他网络的每台机器上运行吗?
我想在一个数据包中发送所有三个字段.
你用htonl的int不是htons.
该名称不需要重新排序,因为该数组的字节直接对应于网络上的字节.
字节顺序的问题仅出现在大于一个字节的字上,因为不同的体系结构选择放置最低有效字节的不同端.