2021-02-08 14:53:49 +01:00
|
|
|
#include <stdio.h>
|
2021-02-08 15:42:35 +01:00
|
|
|
#include <sys/types.h>
|
2021-02-08 15:41:06 +01:00
|
|
|
#include <sys/socket.h>
|
2021-02-08 16:00:36 +01:00
|
|
|
#include <netinet/in.h>
|
2021-02-08 15:41:06 +01:00
|
|
|
#include <string.h>
|
|
|
|
|
2021-02-08 14:53:49 +01:00
|
|
|
|
|
|
|
int main() {
|
2021-02-08 15:41:06 +01:00
|
|
|
int sockfd;
|
2021-02-08 16:00:36 +01:00
|
|
|
struct sockaddr_in servaddr, cliaddr;
|
|
|
|
socklen_t cliaddrlen = sizeof(cliaddr);
|
2021-02-08 15:41:06 +01:00
|
|
|
|
|
|
|
sockfd = socket(AF_INET, SOCK_DGRAM, 0);
|
|
|
|
|
|
|
|
memset(&servaddr, 0, sizeof(servaddr));
|
|
|
|
servaddr.sin_family = AF_INET;
|
|
|
|
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
|
|
|
|
servaddr.sin_port = htons(20169);
|
|
|
|
|
2021-02-08 16:00:36 +01:00
|
|
|
bind(sockfd, (const struct sockaddr *) &servaddr, sizeof(servaddr));
|
2021-02-08 15:41:06 +01:00
|
|
|
|
2021-02-08 16:16:19 +01:00
|
|
|
uint8_t buf[800];
|
2021-02-08 15:41:06 +01:00
|
|
|
|
|
|
|
while (1) {
|
2021-02-08 16:16:19 +01:00
|
|
|
int n = recvfrom(sockfd, buf, sizeof(buf), MSG_TRUNC,
|
2021-02-08 16:00:36 +01:00
|
|
|
(struct sockaddr *) &cliaddr, &cliaddrlen);
|
|
|
|
printf("received %d octets from %04x\n",
|
|
|
|
n, cliaddr.sin_addr.s_addr);
|
2021-02-08 15:41:06 +01:00
|
|
|
}
|
|
|
|
|
2021-02-08 16:00:36 +01:00
|
|
|
}
|