uIP 1.0
Макросы | Функции
Функции преобразований uIP
The uIP TCP/IP stack

Эти функции могут использоваться для преобразования между разными форматами данных, используемых в uIP. Подробнее...

Макросы

#define uip_ipaddr(addr, addr0, addr1, addr2, addr3)
 Конструирует адрес IP из 4 байт.
#define uip_ip6addr(addr, addr0, addr1, addr2, addr3, addr4, addr5, addr6, addr7)
 Составляет адрес IPv6 из восьми 16-битных слов.
#define uip_ipaddr_copy(dest, src)
 Копирует IP-адрес в другой IP-адрес.
#define uip_ipaddr_cmp(addr1, addr2)
 Сравнение двух IP-адресов
#define uip_ipaddr_maskcmp(addr1, addr2, mask)
 Сравнение двух адресов IP с сетевой маской
#define uip_ipaddr_mask(dest, src, mask)
 Маскирует сетевую часть адреса IP.
#define uip_ipaddr1(addr)
 Получение первого октета от адреса IP.
#define uip_ipaddr2(addr)
 Получение второго октета от адреса IP.
#define uip_ipaddr3(addr)
 Получение третьего октета от адреса IP.
#define uip_ipaddr4(addr)
 Получение четвертого октета от адреса IP.
#define HTONS(n)
 Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.

Функции

u16_t htons (u16_t val)
 Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.

Подробное описание

Эти функции могут использоваться для преобразования между разными форматами данных, используемых в uIP.


Макросы

#define HTONS (   n)

Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.

Этот макрос главным образом используется для преобразования констант номера порта. Для преобразования переменных в сетевой порядок байт используйте вместо этого функцию htons().

Примеры:
dhcpc.c, hello-world.c, resolv.c, smtp.c и telnetd.c.

См. определение в файле uip.h строка 1061

Используется в htons(), resolv_conf(), uip_arp_arpin(), uip_arp_out() и uip_udp_new().

#define uip_ip6addr (   addr,
  addr0,
  addr1,
  addr2,
  addr3,
  addr4,
  addr5,
  addr6,
  addr7 
)

Составляет адрес IPv6 из восьми 16-битных слов.

Эта функция конструирует адрес IPv6.

См. определение в файле uip.h строка 842

#define uip_ipaddr (   addr,
  addr0,
  addr1,
  addr2,
  addr3 
)

Конструирует адрес IP из 4 байт.

Эта функция составляет IP-адрес того типа, который обрабатывает внутри себя uIP. Эта функция удобна, чтобы указать IP-адреса для использования, например, с функцией uip_connect().

Пример:

 uip_ipaddr_t ipaddr;
 struct uip_conn *c;
 
 uip_ipaddr(&ipaddr, 192,168,1,2);
 c = uip_connect(&ipaddr, HTONS(80));
Аргументы:
addrУказатель на переменную uip_ipaddr_t, которая будет заполнена адресом IP.
addr0Первый октет адреса IP.
addr1Второй октет адреса IP.
addr2Третий октет адреса IP.
addr3Четвертый октет адреса IP.
Примеры:
dhcpc.c, example-mainloop-with-arp.c и example-mainloop-without-arp.c.

См. определение в файле uip.h строка 830

#define uip_ipaddr1 (   addr)

Получение первого октета от адреса IP.

Выбирает первый октет из IP-адреса.

Пример:

 uip_ipaddr_t ipaddr;
 u8_t octet;

 uip_ipaddr(&ipaddr, 1,2,3,4);
 octet = uip_ipaddr1(&ipaddr);

В предыдущем примере переменная "octet" будет содержать значение 1.

Примеры:
dhcpc.c.

См. определение в файле uip.h строка 985

#define uip_ipaddr2 (   addr)

Получение второго октета от адреса IP.

Выбирает второй октет из IP-адреса.

Пример:

 uip_ipaddr_t ipaddr;
 u8_t octet;

 uip_ipaddr(&ipaddr, 1,2,3,4);
 octet = uip_ipaddr2(&ipaddr);

В предыдущем примере переменная "octet" будет содержать значение 2.

Примеры:
dhcpc.c.

См. определение в файле uip.h строка 1005

#define uip_ipaddr3 (   addr)

Получение третьего октета от адреса IP.

Выбирает третий октет из IP-адреса.

Пример:

 uip_ipaddr_t ipaddr;
 u8_t octet;

 uip_ipaddr(&ipaddr, 1,2,3,4);
 octet = uip_ipaddr3(&ipaddr);

В предыдущем примере переменная "octet" будет содержать значение 3.

Примеры:
dhcpc.c.

См. определение в файле uip.h строка 1025

#define uip_ipaddr4 (   addr)

Получение четвертого октета от адреса IP.

Выбирает четвертый октет из IP-адреса.

Пример:

 uip_ipaddr_t ipaddr;
 u8_t octet;

 uip_ipaddr(&ipaddr, 1,2,3,4);
 octet = uip_ipaddr4(&ipaddr);

В предыдущем примере переменная "octet" будет содержать значение 4.

Примеры:
dhcpc.c.

См. определение в файле uip.h строка 1045

#define uip_ipaddr_cmp (   addr1,
  addr2 
)

Сравнение двух IP-адресов

Сравнивает два IP-адреса.

Пример:

 uip_ipaddr_t ipaddr1, ipaddr2;

 uip_ipaddr(&ipaddr1, 192,16,1,2);
 if(uip_ipaddr_cmp(&ipaddr2, &ipaddr1)) {
    printf("They are the same");
 }
Аргументы:
addr1Первый IP-адрес.
addr2Второй IP-адрес.

См. определение в файле uip.h строка 901

Используется в uip_arp_arpin() и uip_arp_out().

#define uip_ipaddr_copy (   dest,
  src 
)

Копирует IP-адрес в другой IP-адрес.

Копирует IP-адрес с одного места в другое.

Пример:

 uip_ipaddr_t ipaddr1, ipaddr2;

 uip_ipaddr(&ipaddr1, 192,16,1,2);
 uip_ipaddr_copy(&ipaddr2, &ipaddr1);
Аргументы:
destМесто назначения копии.
srcИсходные данные, откуда IP будет копироваться.
Примеры:
smtp.c.

См. определение в файле uip.h строка 872

Используется в uip_arp_out(), uip_connect() и uip_udp_new().

#define uip_ipaddr_mask (   dest,
  src,
  mask 
)

Маскирует сетевую часть адреса IP.

Выделяет маской сетевую часть от IP-адреса, которая получается от адреса и сетевой маски.

Пример:

 uip_ipaddr_t ipaddr1, ipaddr2, netmask;

 uip_ipaddr(&ipaddr1, 192,16,1,2);
 uip_ipaddr(&netmask, 255,255,255,0);
 uip_ipaddr_mask(&ipaddr2, &ipaddr1, &netmask);

В предыдущем примере переменная "ipaddr2" будет содержать IP-адрес 192.168.1.0.

Аргументы:
destМесто, куда будет помещен результат.
srcАдрес IP.
maskСетевая маска.

См. определение в файле uip.h строка 962

#define uip_ipaddr_maskcmp (   addr1,
  addr2,
  mask 
)

Сравнение двух адресов IP с сетевой маской

Сравнивает два адреса IP с сетевой маской. Маски используются, чтобы маскировать биты, которые должны сравниваться.

Пример:

 uip_ipaddr_t ipaddr1, ipaddr2, mask;

 uip_ipaddr(&mask, 255,255,255,0);
 uip_ipaddr(&ipaddr1, 192,16,1,2);
 uip_ipaddr(&ipaddr2, 192,16,1,3);
 if(uip_ipaddr_maskcmp(&ipaddr1, &ipaddr2, &mask)) {
    printf("They are the same");
 }
Аргументы:
addr1Первый IP-адрес.
addr2Второй IP-адрес.
maskСетевая маска.

См. определение в файле uip.h строка 931

Используется в uip_arp_out().


Функции

u16_t htons ( u16_t  val)

Преобразует 16-битное число с порядком байт хоста в число с сетевым порядком байт.

Этот функция главным образом используется для преобразования переменных номера порта. Для преобразования констант в сетевой порядок байт используйте вместо этого макрос HTONS().

Примеры:
example-mainloop-with-arp.c, resolv.c и webclient.c.

См. определение в файле uip.c строка 1855

Перекрестные ссылки HTONS.

Используется в uip_chksum(), uip_connect(), uip_ipchksum(), uip_udp_new() и webclient_get().