Здравствуйте. Пытаюст написать udp север, используя библиотеку lwip.
В мануале нашел код
Код
if (ETH_CheckFrameReceived())
{
/* process received Ethernet packet */
LwIP_Pkt_Handle();
}
Т.е. сперва проверяю, пришел ли кадр и, если пришел, то следующая функцию "отправляет пакет в lwip для обработки"
LwIP_Pkt_Handle() запускает следующую функцию
Код
err_t ethernetif_input(struct netif *netif)
{
err_t err;
struct pbuf *p;
/* move received packet into a new pbuf */
p = low_level_input(netif);
/* no packet could be read, silently ignore this */
if (p == NULL) return ERR_MEM;
/* entry point to the LwIP stack */
err = netif->input(p, netif);
if (err != ERR_OK)
{
LWIP_DEBUGF(NETIF_DEBUG, ("ethernetif_input: IP input error\n"));
pbuf_free(p);
p = NULL;
}
return err;
}
Т.е., как я понял, lwip создает буфер (переменная p типа pbuf) и записывает содержимое пакета туда. Но как дальше получить данные из этого буфера?