#include #include #include #include #include #include #include struct netif netif; unsigned char ipaddr[] = {192, 168, 101, 42}; unsigned char gw[] = {192, 168, 101, 1}; unsigned char netmask[] = {255, 255, 255, 0}; unsigned short port=4242; static void init_func(void *arg){ struct netif *rv = netif_add(&netif, (void *) ipaddr, (void *) netmask, (void *) gw, NULL, tapif_init, tcpip_input); if (rv) { netif_set_default(&netif); netif_set_up(&netif); netif_set_link_up(&netif); } } int main(int argc, char *argv[]) { tcpip_init(init_func, NULL); sleep(1); int s = lwip_socket(AF_INET, SOCK_DGRAM, 0); printf("s=%d\n", s); struct sockaddr_in bindaddr = { .sin_family = AF_INET, .sin_port = htons(port), .sin_addr = IPADDR_ANY }; struct sockaddr_in sender; unsigned int senderlen = sizeof(sender); lwip_bind(s, (void *) &bindaddr, sizeof(bindaddr)); for (;;) { char buf[1024]; int rv = lwip_recvfrom(s, buf, sizeof(buf) - 1, 0, (void *) &sender, &senderlen); if (rv > 0) { buf[rv] = 0; printf("echo %s\n", buf); lwip_sendto(s, buf, rv, 0, (void *) &sender, senderlen); } } lwip_close(s); }