cout << "Hello World !" << endl;
Для моего самого первого сообщения о переполнении стека: когда мы должны использовать функцию htonl
? Я просмотрел справочную страницу. Однако я не очень понимаю, когда и как его использовать.
cout << "Hello World !" << endl;
Для моего самого первого сообщения о переполнении стека: когда мы должны использовать функцию htonl
? Я просмотрел справочную страницу. Однако я не очень понимаю, когда и как его использовать.
Host TO Nсетевой перевод. Это гарантирует, что endian 32-битного значения данных является правильным (Big endian) для сетевого транспорта. . ntohl
-- Nnetwork TO Host -- используется получателем, чтобы гарантировать правильность порядка байтов для процессора получателя. Следите за htons
и ntohs
для обработки 16 бит, и где-то там, вероятно, htonll
и ntohll
для 64 бит.
Использовать их все так же просто, как передать число, которое вы хотите преобразовать, и получить преобразованное число. Вы можете обнаружить, что на некоторых процессорах абсолютно ничего не происходит, потому что их порядок байтов уже большой.
uint32_t inval = 0xAABBCCDD;
uint32_t outval = htonl(inval);
На большинстве настольных компьютеров приведет к тому, что outval будет установлен на 0xDDCCBBAA
ntohl
для восстановления значения. - person jxh   schedule 22.05.2015ntohl
, которая на самом деле является -byte-o">та же функция, что и htonl на той же платформе. Также естьhtons
иntohs
для 2-байтовых значений. - person selbie   schedule 22.05.2015