A következo program lefoglal egy UDP portot, kiírja annak a címét a képernyore, és vár az UDP-porton egy datagramra, és ha kap egyet, akkor kiírja a tartalmát.
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> /* * A program letrehoz egy UDP socketot, nevvel latja el, es egy ra * erkezo csomagot fogad es kiir. */ main() { int sock, len; struct sockaddr_in server, from; char buf[1024]; int addrlen; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock < 0) { perror("hiba a socket-nel"); exit(1); } server.sin_family = AF_INET; server.sin_addr.s_addr = htonl(INADDR_ANY); server.sin_port = htons(0); if (bind(sock, &server, sizeof(server))) { perror("hiba a bind-nal"); exit(1); } len = sizeof(server); if (getsockname(sock, &server, &len)) { perror("hiba a getsockname-nel"); exit(1); } fprintf(stderr,"UDP port:%d\n", ntohs(server.sin_port)); if (recvfrom(sock, buf, 1024, 0, &from, &addrlen) < 0) { perror("hiba a recvfrom-nal"); exit(2); } fprintf(stderr,"Fogadott szoveg: >>%s<<\n", buf); close(sock); }