Listing 2: Using recvfrom/sendto in the server

/* 's' is a socket identifier from Listing 1 */
char buffer[2048];
struct sockaddr_in client_addr;
socklen_t addr_len;
int len = recvfrom(s,buffer,sizeof(buffer),0,
                   (struct sockaddr *)(&client_addr),
                   &addr_len);
if(len < 0) { /* Error receiving */ }

/* Parse request, Generate response here */

/* Send packet back to client */
int result =  sendto(s,response,response_length,0,
                     (struct sockaddr *)(&client_addr),
                     sizeof(client_addr));
if(result < response_length) { /* Error sending */ }
— End of Listing —