#include #include #include #include #include #include #include #include #include int main(int args, char ** argv){ struct sockaddr_in sad; sad.sin_port = htons(atoi(argv[2])); sad.sin_family = AF_INET; int skt = socket(AF_INET, SOCK_DGRAM, 0); struct hostent* entry = gethostbyname(argv[1]); struct in_addr **addr_list = (struct in_addr**)entry->h_addr_list; struct in_addr* c_addr = addr_list[0]; char* ip_string = inet_ntoa(*c_addr); sad.sin_addr = *c_addr; printf("Sending request to: %s\n", ip_string); long int a = 100, b = 20; char buffer[20]; memcpy(buffer, "DIVI", 4); memcpy(buffer+4, &a, 8); memcpy(buffer+12, &b, 8); sendto(skt, buffer, 20, 0, (struct sockaddr*)&sad, sizeof(sad)); printf("Expecting to receive next\n"); recvfrom(skt, buffer, 12, 0, 0, 0); memcpy(&a, buffer+4, 8); printf("The answer was %ld\n", a); return 0; }