uIP 1.0
|
Функции, используемые в приложении, работающем поверх uIP. Подробнее...
Макросы | |
#define | uip_datalen() |
Длина любых пришедшик данны, которые в настоящий момент доступны (если доступны) в буфере uip_appdata. | |
#define | uip_urgdatalen() |
Длина любых данные вне диапазона (out-of-band data, или urgent data, т. | |
#define | uip_close() |
Закрывает текущее соединение. | |
#define | uip_abort() |
Обрыв (Abort) текущего соединения. | |
#define | uip_stop() |
Говорит посылающему данные хосту, что нужно остановить отправку данных. | |
#define | uip_stopped(conn) |
Проверяет, было ли текущее соединение ранее остановлено вызовом uip_stop(). | |
#define | uip_restart() |
Перезапускает текущее соединение, если оно было ранее остановлено вызовом uip_stop(). | |
#define | uip_udpconnection() |
Текущее соединение является соединением UDP? | |
#define | uip_newdata() |
Есть ли новые данные? | |
#define | uip_acked() |
Были ли подтверждены ранее отправленные данные? | |
#define | uip_connected() |
Соединение все еще установлено? | |
#define | uip_closed() |
Было ли соединение закрыто на дальнем конце? | |
#define | uip_aborted() |
Было ли соединение оборвано (aborted) на другом конце? | |
#define | uip_timedout() |
Истек ли таймаут на соединении? | |
#define | uip_rexmit() |
Нужно ли отправить заново ранее посланные данные? | |
#define | uip_poll() |
Соединение опрашивается от uIP? | |
#define | uip_initialmss() |
Получает максимальный начальный размер сегмента (MSS) текущего соединения. | |
#define | uip_mss() |
Получает текущий максимальный размер сегмента, который может быть отправлен через текущее соединение. | |
#define | uip_udp_remove(conn) |
Удаляет соединение UDP. | |
#define | uip_udp_bind(conn, port) |
Привязка соединения UDP к локальному порту. | |
#define | uip_udp_send(len) |
Отправляет датаграмму UDP длиной len через текущее соединение. | |
Функции | |
void | uip_listen (u16_t port) |
Запуск прослушивания указанного порта. | |
void | uip_unlisten (u16_t port) |
Остановить прослушивание указанного порта. | |
struct uip_conn * | uip_connect (uip_ipaddr_t *ripaddr, u16_t port) |
Соединение с дальним хостом (remote host), используя TCP. | |
void | uip_send (const void *data, int len) |
Посылает данные через текущее соединение. | |
struct uip_udp_conn * | uip_udp_new (uip_ipaddr_t *ripaddr, u16_t rport) |
Устанавливает новое соединение UDP. |
Функции, используемые в приложении, работающем поверх uIP.
#define uip_abort | ( | ) |
Обрыв (Abort) текущего соединения.
Эта функция оборвет (сбросит) текущее соедиение, что обычно используется, когда случилась ошибка, что не дает право использовать функцию uip_close().
#define uip_aborted | ( | ) |
Было ли соединение оборвано (aborted) на другом конце?
Не 0, если текущее было оборвано (сброшено) по инициативе remote host.
#define uip_acked | ( | ) |
Были ли подтверждены ранее отправленные данные?
Вернет не 0, если ранее посланные данные были подтверждены стороной remote host. Это означает, что приложение может послать новые данные.
#define uip_close | ( | ) |
#define uip_closed | ( | ) |
Было ли соединение закрыто на дальнем конце?
Не 0, если соединение было закрыто по инициативе remote host. Если это так, то приложение может сделать необходимые очистки.
#define uip_connected | ( | ) |
Соединение все еще установлено?
Вернет не 0, если текущее соедиение еще работает, и подключено к remote host. Это случится в обоих случаях, если соединение активно открыто (вызовом uip_connect()) или пассивно открыто (вызовом uip_listen()).
#define uip_datalen | ( | ) |
Длина любых пришедшик данны, которые в настоящий момент доступны (если доступны) в буфере uip_appdata.
Перед этим может быть использована функция uip_data(), чтобы проверить, есть ли вообще доступные данные.
#define uip_mss | ( | ) |
Получает текущий максимальный размер сегмента, который может быть отправлен через текущее соединение.
Такущий максимальный размер сегмента, который можно отправить на соединении, вычисляется на основе окна прием и MSS соединения (которое также доступно через вызов uip_initialmss()).
#define uip_newdata | ( | ) |
#define uip_poll | ( | ) |
Соединение опрашивается от uIP?
Не 0, если причина вызова приложения в том, что соединение было неактивно некоторое время, и должно быть опрошено.
Событие опроса (polling event) может быть использовано для отправки данных без ожидания, что remote host отправит данные.
#define uip_restart | ( | ) |
Перезапускает текущее соединение, если оно было ранее остановлено вызовом uip_stop().
Эта функция снова откроет окно приема, что приведет к возобновлению приема данных на текущем соединении.
#define uip_rexmit | ( | ) |
Нужно ли отправить заново ранее посланные данные?
Вернет не 0, если ранее отправленные данные были потеряны в сети, в этом случае приложение должно заново их отправить (retransmit). Приложение должно отправить точно те же данные, которые оно отправило последний раз, используя функцию uip_send().
#define uip_stop | ( | ) |
#define uip_timedout | ( | ) |
Истек ли таймаут на соединении?
Не 0, если текущее соединение было оборвано из за слишком большого количества ретрансмиссий.
#define uip_udp_bind | ( | conn, | |
port | |||
) |
Привязка соединения UDP к локальному порту.
conn | Указатель на структуру uip_udp_conn для соединения. |
port | Номер локального порта с сетевым порядком байт. |
#define uip_udp_remove | ( | conn | ) |
Удаляет соединение UDP.
conn | Указатель на структуру uip_udp_conn для соединения. |
См. определение в файле uip.h строка 766
Используется в resolv_conf().
#define uip_udp_send | ( | len | ) |
Отправляет датаграмму UDP длиной len через текущее соединение.
Эта функция может быть вызвана только в ответ на событие UDP (опроса или поступления новых данных). Данные должны быть представлены в буфере uip_buf, в том месте, на которое указывает указатель uip_appdata.
len | Длина данных в буфере uip_buf. |
#define uip_udpconnection | ( | ) |
#define uip_urgdatalen | ( | ) |
Соединение с дальним хостом (remote host), используя TCP.
Эта функция используется для запуска нового соединения с указанным портом указанного хоста. Она выделяет новый идентификатор соединения, устанавливает соединение в состояние SYN_SENT и устанавливает таймер ретрансмиссии в 0. Это приведет к тому, что будет передан сегмент TCP SYN в следующий раз, когда это соединение будет периодически обработано, что будет сделано обычно через 0.5 секунд после вызова uip_connect().
uip_ipaddr_t ipaddr; uip_ipaddr(&ipaddr, 192,168,1,2); uip_connect(&ipaddr, HTONS(80));
ripaddr | IP-адрес для remote hot. |
port | 16-битный номер порта с сетевым порядком байт. |
См. определение в файле uip.c строка 404
Перекрестные ссылки htons(), uip_conn::initialmss, uip_conn::len, uip_conn::lport, uip_conn::mss, uip_conn::nrtx, uip_conn::ripaddr, uip_conn::rport, uip_conn::rto, uip_conn::sa, uip_conn::snd_nxt, uip_conn::sv, uip_conn::tcpstateflags, uip_conn::timer, UIP_CONNS, uip_ipaddr_copy, UIP_RTO и UIP_TCP_MSS.
Используется в webclient_get().
void uip_listen | ( | u16_t | port | ) |
Запуск прослушивания указанного порта.
uip_listen(HTONS(80));
port | 16-битный номер порта с сетевым порядком байт. |
См. определение в файле uip.c строка 526
Перекрестные ссылки UIP_LISTENPORTS.
void uip_send | ( | const void * | data, |
int | len | ||
) |
Посылает данные через текущее соединение.
Эта функция используется для отправки одного сегмента данных TCP. Могут отправлять данные только приложения, которые были вызваны из uIP для обработки события.
Количество данных, которое было на самом деле отправлено после вызова этой функции, определяется максимальным количеством данны, которое позволяет TCP. uIP автоматически будет урезать данные, так чтобы было отправлено допустимое количество. Может быть использована фукнция uip_mss(), чтобы запросить у uIP количество данных, которое будет отправлено в действительности.
data | Указатель на данные для отправки. |
len | Максимальное количество данных для отправки. |
См. определение в файле uip.c строка 1861
Перекрестные ссылки uip_conn::len.
struct uip_udp_conn* uip_udp_new | ( | uip_ipaddr_t * | ripaddr, |
u16_t | rport | ||
) | [read] |
Устанавливает новое соединение UDP.
Эта функция устанавливает новое соединение UDP. Функция автоматически выделит неиспользуемый локальный порт для нового соединения. Однако может быть выбран другой порт с помощью вызова uip_udp_bind() после того, как была вызвана функция uip_udp_new().
Пример:
uip_ipaddr_t addr; struct uip_udp_conn *c; uip_ipaddr(&addr, 192,168,2,1); c = uip_udp_new(&addr, HTONS(12345)); if(c != NULL) { uip_udp_bind(c, HTONS(12344)); }
ripaddr | IP-адрес для remote host. |
rport | Номер порта remote host с сетевым порядком байт. |
См. определение в файле uip.c строка 470
Перекрестные ссылки HTONS, htons(), uip_udp_conn::lport, uip_udp_conn::ripaddr, uip_udp_conn::rport, uip_udp_conn::ttl, uip_ipaddr_copy, UIP_TTL и UIP_UDP_CONNS.
Используется в resolv_conf().
void uip_unlisten | ( | u16_t | port | ) |
Остановить прослушивание указанного порта.
uip_unlisten(HTONS(80));
port | 16-битный номер порта с сетевым порядком байт. |
См. определение в файле uip.c строка 515
Перекрестные ссылки UIP_LISTENPORTS.