文字列を送受信するときに、ネットワーク/ホストのバイト順に変換する必要がありますか? 利用可能な関数 (htons() など) は、16 ビットと 32 ビットの整数でのみ機能します。また、一般的には1バイトの大きさであるため、単一の文字が違いを生むべきではないという事実も知っています。しかし、文字列はどうですか?
以下はコードスニペットです
int len; recv(fd, &len, sizeof (int), 0);
len = ntohl(len);
char* string = malloc(sizeof (char) * (len + 1));
int received = recv(fd, string, sizeof (char) * len, 0);
string[len] = '\0';