Networking in C · advanced · ~10 min

UDP server

Bind a UDP socket and receive datagrams.

Lesson

Same idea as TCP server but no listen/accept — UDP is connectionless. recvfrom blocks until a datagram arrives and fills in the sender's address.

Code examples

int s = socket(AF_INET, SOCK_DGRAM, 0);
bind(s, /* addr */ , sizeof addr);
char buf[1500]; struct sockaddr_in from; socklen_t fl = sizeof from;
ssize_t n = recvfrom(s, buf, sizeof buf, 0, (struct sockaddr*)&from, &fl);