MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / udp_client_entry

Function udp_client_entry

components/net/utest/tc_lwip.c:486–587  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

484}
485
486static void udp_client_entry(void *parameter)
487{
488#define LWIP_UDP_TEST_BUF_SIZE 16
489
490 rt_bool_t fail_flag = RT_TRUE;
491 int ret, sock = -1, port;
492 struct sockaddr_in server_addr;
493 char send_buf[] = "hello";
494 char recv_buf[LWIP_UDP_TEST_BUF_SIZE];
495 socklen_t addr_len = sizeof(struct sockaddr_in);
496
497 port = RT_UTEST_LWIP_UDP_PORT;
498
499 /* create socket */
500 if ((sock = lwip_socket(AF_INET, SOCK_DGRAM, 0)) == -1)
501 {
502 uassert_true(RT_FALSE);
503 goto __exit;
504 }
505 else
506 {
507 uassert_true(RT_TRUE);
508 }
509
510 /* bind to any port */
511 struct sockaddr_in client_bind_addr;
512 client_bind_addr.sin_family = AF_INET;
513 client_bind_addr.sin_port = 0; /* let system assign port */
514 client_bind_addr.sin_addr.s_addr = htonl(IPADDR_ANY);
515 rt_memset(&(client_bind_addr.sin_zero), 0, sizeof(client_bind_addr.sin_zero));
516 if (lwip_bind(sock, (struct sockaddr *)&client_bind_addr, sizeof(struct sockaddr)) == -1)
517 {
518 rt_kprintf("UDP client bind failed\n");
519 uassert_true(RT_FALSE);
520 goto __exit;
521 }
522 rt_kprintf("UDP client bound\n");
523
524 server_addr.sin_family = AF_INET;
525 server_addr.sin_port = htons(port);
526 /* server addr:127.0.0.1 */
527 server_addr.sin_addr.s_addr = htonl(IPADDR_LOOPBACK);
528 rt_memset(&(server_addr.sin_zero), 0, sizeof(server_addr.sin_zero));
529
530 /* wait for the server to enter the receive state */
531 rt_thread_mdelay(10);
532
533 /* send data to server */
534 ret = lwip_sendto(sock, send_buf, rt_strlen(send_buf), 0, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));
535 if (ret <= 0)
536 {
537 rt_kprintf("UDP client sendto failed: sent %d\n", ret);
538 uassert_true(RT_FALSE);
539 goto __exit;
540 }
541 rt_kprintf("UDP client sent %d bytes: %s\n", ret, send_buf);
542
543 /* receive echo from server with timeout */

Callers

nothing calls this directly

Calls 12

rt_memsetFunction · 0.85
rt_kprintfFunction · 0.85
rt_thread_mdelayFunction · 0.85
rt_strlenFunction · 0.85
rt_strncmpFunction · 0.85
rt_event_sendFunction · 0.85
lwip_socketFunction · 0.50
lwip_bindFunction · 0.50
lwip_sendtoFunction · 0.50
lwip_selectFunction · 0.50
lwip_recvfromFunction · 0.50
lwip_closeFunction · 0.50

Tested by

no test coverage detected