#include #include #include #include int main(int argc, char *argv[]) { int sockid, buflen; struct sockaddr_in servsock, fromsock; size_t fromlen; char buf[30000], response[20]; sockid = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); servsock.sin_family=AF_INET; servsock.sin_port=htons(53413); servsock.sin_addr.s_addr = htonl(INADDR_ANY); fcntl(sockid, F_SETFL, O_NONBLOCK); if (bind(sockid, (struct sockaddr *) &servsock, sizeof(servsock)) < 0) { printf("Cannot bind to port 53413\n"); } bzero(buf, 30000); fromlen = sizeof(fromsock); while (1) { if (recvfrom(sockid, buf, 30000, 0, (struct sockaddr *) &fromsock, &fromlen) > 0) { printf("foo sent %s. What do you want to reply?\n", buf); scanf("%s", &response); fromlen=sizeof(fromsock); if (sendto(sockid, response, strlen(response), 0, (struct sockaddr *) &fromsock, fromlen) < 0) { printf("sendto error\n"); } } } }