Доброго времени суток. Пытаюсь разобраться с работой стека, следуя по стопам Acvarif, но застрял почти на начале.) Используя пример указанный в самом начале, UDP сообщение так и посылается.
CODE
struct udp_pcb *upcb;
struct pbuf *p;
struct ip_addr DestIPaddr;
char tdata[] = {"Test"};
char *data = tdata;
/* Create a new UDP control block */
upcb = udp_new();
/*assign destination IP address */
IP4_ADDR( &DestIPaddr, DEST_IP_ADDR0, DEST_IP_ADDR1, DEST_IP_ADDR2, DEST_IP_ADDR3 );
/* configure destination IP address and port */
udp_connect(upcb, &DestIPaddr, UDP_SERVER_PORT);
/* allocate pbuf from pool*/
p = pbuf_alloc(PBUF_TRANSPORT,strlen((char*)data), PBUF_POOL);
/* copy data to pbuf */
pbuf_take(p, (char*)data, strlen((char*)data));
/* send udp data */
udp_send(upcb, p);
По IP адресу отправляется ARP запрос, ПК шлет ответ (смотрю Wireshark), но присланный МАС адрес ПК не добавляется в таблицу. Я так понимаю, что нужно включить обработчик приема сообщений, но не знаю как. Кто знает, подскажите как это сделать, либо укажите где не прав.)