We will start with the server, since we already have a usable UDP client, that is, udp_client.c.
Like all of our networked programs, we will begin by including the necessary headers, starting with the main() function, and initializing Winsock as follows:
/*udp_recvfrom.c*/#include "chap04.h"int main() {#if defined(_WIN32) WSADATA d; if (WSAStartup(MAKEWORD(2, 2), &d)) { fprintf(stderr, "Failed to initialize.\n"); return 1; }#endif
If you've been working through this book in order, this code should be very routine for you by now. If you haven't, then please refer to Chapter 2, Getting to Grips with Socket APIs.
Then, we must configure the local address that our server listens on. We use getaddrinfo() for this, as follows: ...