powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / htonl()
8 сообщений из 8, страница 1 из 1
htonl()
    #34874667
гестег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ещё раз всем привет, что может означать запись:

Код: plaintext
a = htonl(b);
...
Рейтинг: 0 / 0
htonl()
    #34874708
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
BYTEORDER(3) Linux Programmer’s Manual BYTEORDER(3)

НАЗВАНИЕ
htonl, htons, ntohl, ntohs - переводят данные из узлового порядкарасположения байтов в сетевой и наоборот

СИНТАКСИС
#include <netinet/in.h>

uint32_t htonl(uint32_t hostlong);

uint16_t htons(uint16_t hostshort);

uint32_t ntohl(uint32_t netlong);

uint16_t ntohs(uint16_t netshort);

ОПИСАНИЕ
Функция htonl() преобразует узловой порядок расположениябайтов положительного целого hostlong в сетевой порядок распол
ожения байтов.

Функция htons() преобразует узловой порядок расположения байтовположительного короткого целого hostshort в сетевой пор
ядок расположения байтов.

Функция ntohl() преобразует сетевой порядок расположения байтовположительного целого netlong в узловой порядок располо
жения байтов.

Функция ntohs() преобразует сетевой порядок расположения байтовположительного короткого целого netshort в узловой поря
док расположения байтов.

В архитектуре i80x86 узловой порядок расположения байтов - этотакой порядок, при котором последний значимый байт стоит
в начале числа, а при сетевом порядке расположения байтов, используемом в интернет, наоборот: первый значимый байт сто
ит в начале числа.

СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3

СМ. ТАКЖЕ
gethostbyname(3), getservent(3)

BSD April 15, 1993 BYTEORDER(3)
...
Рейтинг: 0 / 0
htonl()
    #34874723
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
htonl()
    #34875616
гестег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужен аналог этого дела под язык HaXe... Никто не может дать синтаксис?
...
Рейтинг: 0 / 0
htonl()
    #34875636
гестег
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всмысле реализацию функции на С(впрочем если есть на HaXe это ещё лучше:-))
...
Рейтинг: 0 / 0
htonl()
    #34877039
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде, байты надо задом на перед переставить. Для убидительности надо прогнать эту функцию и посмотреть результат.
...
Рейтинг: 0 / 0
htonl()
    #34877119
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сетевой порядок байт - big endian, интеловский little endian. Поэтому
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
typedef unsigned int uint32;
typedef unsigned char byte;
uint32 htonl(uint32 i)
{
  byte b[ 4 ] = &i;
  for (int i =  0 ; i <  4 ; ++i)
    b[i] = ((byte*) &i)[  3  - i ];
  return *(uint32*)b;
}
...
Рейтинг: 0 / 0
htonl()
    #34877298
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedСетевой порядок байт - big endian, интеловский little endian. Поэтому
...

Смутило только то, что существуют пары функций для преобразования. Хотя выполняют они одно и то же.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / htonl()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]