1 #include <sys/socket.h>
5 #include <netinet/in.h>
8 int main(int argc, const char *argv[])
14 fprintf(stderr, "USAGE: %s listening_port\n", argv[0]);
18 sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
20 perror("Failed to create socket");
24 struct sockaddr_in saddr;
25 memset(&saddr, 0, sizeof(saddr));
27 inet_pton(AF_INET, "192.168.130.129", &saddr.sin_addr.s_addr);
28 saddr.sin_port = htons(atoi(argv[1]));
29 saddr.sin_family = AF_INET;
31 if (bind(sock, (struct sockaddr *) &saddr, sizeof(saddr)) < 0) {
32 perror("Failed to bind socket");
40 struct sockaddr_in from;
42 memset(&msg, 0, sizeof(msg));
43 memset(&iov, 0, sizeof(iov));
44 memset(&from, 0, sizeof(from));
46 iov[0].iov_base = buf;
47 iov[0].iov_len = sizeof(buf);
52 msg.msg_namelen = sizeof(from);
58 for (i = 0; i < N; i ++) {
59 ret = recvmsg(sock, &msg, 0);
61 perror("Failed to recv on socket");
64 if (i % (N / 50) == 0)
68 printf("Received %d bytes on socket\n", ret);
69 printf("buf=%s\n", buf);
71 if (close(sock) < 0) {
72 perror("Failed to close socket");