在C++中,我们通过网络套接字发送数据。我知道我们需要使用htons()和ntohs()函数来维护字节顺序,即大端和小端。支持我们有以下要发送的数据。
int roll;
int id;
char name[100];
这也可以包装成结构体。
我的困惑在于,对于roll和id,我们可以使用htons()函数。但对于字符串name,我们应该如何处理?我们需要使用任何类似的函数吗?它会在像Mac、Intel和其他网络这样的每台机器上工作吗?
我想将所有三个字段一起发送到一个数据包中。
char
的大小是一个字节: 八位。当你说“多字节”时,我想你指的是宽字符或wchar_t
,它们通常是16位,但有时是32位。无论哪种方式,可以相当确信char
在任何基于 IP 的传输中都会编码为单个单位。如果您想发送 Unicode,则通常最好传输 UTF-8 编码而不是宽字符。 - Marcelo Cantoshtons
)。正如您所指出的,UTF-8编码定义了一个字符级编码(一组字节),因此它没有这样的问题。 - Marcelo Cantos