diff --git a/sink/.gitignore b/sink/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/sink/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/sink/sink20169.c b/sink/sink20169.c index e4d3f72..aff0f93 100644 --- a/sink/sink20169.c +++ b/sink/sink20169.c @@ -1,12 +1,14 @@ #include #include #include +#include #include int main() { int sockfd; - struct sockaddr servaddr; + struct sockaddr_in servaddr, cliaddr; + socklen_t cliaddrlen = sizeof(cliaddr); sockfd = socket(AF_INET, SOCK_DGRAM, 0); @@ -15,13 +17,15 @@ int main() { servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(20169); - bind(sockfd, (SA*) &servaddr, sizeof(servaddr)); + bind(sockfd, (const struct sockaddr *) &servaddr, sizeof(servaddr)); uint8_t buf[1024]; while (1) { - int n = recv(sockfd, buf, sizeof(buf), 0); - printf("received %d octets\n"); + int n = recvfrom(sockfd, buf, sizeof(buf), 0, + (struct sockaddr *) &cliaddr, &cliaddrlen); + printf("received %d octets from %04x\n", + n, cliaddr.sin_addr.s_addr); } -} \ No newline at end of file +}