преобразование uint32_t htonl в char [4] с использованием memcpy не дает вывода

Мой вопрос похож на тот, что в этой ссылке используйте htonl для преобразования целого числа и memcpy в символ *, но ничего , и есть некоторые другие подобные вопросы, но причина, по которой я задаю новый, заключается в том, что я не смог найти решение. То, что я хочу сделать, это добавить длину сообщения в 4 байта от htonl перед отправкой реального сообщения (sendBuffer)

int packed_len = strlen(dataInChar);  //dataInChar is the serialized char array
char myByteArray[sizeof(int)];
uint32_t bigEndianValue = htonl(packed_len);  // convert the value to big-endian for cross-platform compatibility
memcpy(myByteArray, &bigEndianValue, sizeof(uint32_t));
std::cout<<"myByteArray length: "<<strlen(myByteArray)<<std::endl;  //output 0

char sendBuffer[1024]; //final buffer to send
memcpy(sendBuffer, &myByteArray, 4);
memcpy(sendBuffer+4, dataInChar, strlen(dataInChar));
std::cout<<"sendBuffer length: "<<strlen(sendBuffer)<<std::endl;  //output 0

Я не касался c ++ годами, поэтому, пожалуйста, простите меня за любые глупости, которые я делаю здесь неправильно.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]