Advertisement
Guest User

lwip UDP problem

a guest
Dec 5th, 2011
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.06 KB | None | 0 0
  1. vRunNTPServer (void* pvParameters)
  2. {
  3.     if ((sock = lwip_socket(AF_INET, SOCK_DGRAM, 0)) == -1)
  4.         perrorx("Socket");
  5.  
  6.     server_addr.sin_family = AF_INET;
  7.     server_addr.sin_port = htons(webNTP_PORT);
  8.     server_addr.sin_addr.s_addr = INADDR_ANY;
  9.     memset(&(server_addr.sin_zero),0, 8);
  10.  
  11.     if (lwip_bind(sock, (struct sockaddr*) &server_addr, sizeof(struct sockaddr)) == -1)
  12.         perrorx("Bind");
  13.  
  14.     addr_len = sizeof(struct sockaddr);
  15.  
  16.     while (1)
  17.     {
  18.         bytes_read = lwip_recvfrom(sock,recv_data, TCP_MSS, 0, (struct sockaddr*) &client_addr, &addr_len);
  19.  
  20.         if (bytes_read == (signed int) sizeof(sntp_message_t))
  21.         {
  22.             sntp_message_t reply;
  23.             memset(&reply, 0, sizeof(reply));
  24.  
  25.             // Fill reply struct...
  26.  
  27.             if (lwip_sendto(socket, &reply, sizeof(reply), 0, (struct sockaddr*) receiver, recvlen) < 0)
  28.             {
  29.                 // print send error
  30.             }
  31.         }
  32.         else
  33.         {
  34.             // print receive size mismatch error
  35.         }
  36.     } // while
  37. }
  38.  
  39.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement