一、创建UDP服务器
struct udp_pcb *udpService;
udpService = udp_new();
udp_bind(udpService,IP_ADDR_ANY,1000);
udp_recv(udpService,UDP_Receive,NULL);
//创建UDP服务器,监听端口1000,收到数据后回传给客户端。
void UDP_Receive(void *arg, struct udp_pcb *upcb, struct pbuf *p, struct ip_addr *addr, u16_t port)
{
struct ip_addr destAddr = *addr;
if(p != NULL)
{
udp_sendto(upcb,p,&destAddr,port);
pbuf_free(p);
}
}
使用sockettool测试OK
二、创建UDP客户端
struct udp_pcb *udpClient;
struct pbuf* p;
struct ip_addr ipaddr;
IP4_ADDR(&ipaddr,192,168,1,55);
p = pbuf_alloc(PBUF_RAM,10,PBUF_RAM);
p->payload = (void*)"123456";
udpClient = udp_new();
udp_bind(udpClient,IP_ADDR_ANY,1600);
udp_connect(udpClient,&ipaddr,6000);
udp_recv(udpClient,UDP_Receive,NULL);
udp_send(udpClient,p);
//创建客户端,接收端口1600,连接到192.168.1.55,调用udp_send后才连接。