C++在套接字编程中的字节顺序

Vij*_*jay 3 c++ sockets endianness

在C++中,我们使用网络上的套接字发送数据.我知道我们需要使用htons(),ntohs()函数来维护字节顺序大端小端.

支持我们有以下数据要发送

int roll;
int id;
char name[100];
Run Code Online (Sandbox Code Playgroud)

这也可以包含在struct中.

我的困惑在于,对于rollid,我们可以使用htons()函数.但对于字符串名称,我们应该怎样以及应该如何做呢?我们需要使用任何这样的功能吗?它会在mac,intel和其他网络的每台机器上运行吗?

我想在一个数据包中发送所有三个字段.

Mar*_*tos 6

你用htonlint不是htons.

该名称不需要重新排序,因为该数组的字节直接对应于网络上的字节.

字节顺序的问题仅出现在大于一个字节的字上,因为不同的体系结构选择放置最低有效字节的不同端.