// Run like this: simple_client address port // Results in argv ["./simple_client", "address", "port"] #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_STREAM, 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("Connecting to: %s\n", ip_string); connect(skt, (struct sockaddr*)&sad, sizeof(struct sockaddr_in)); char type = 78; write(skt, &type, 1); int32_t weight = 1000; write(skt, &weight, 4); read(skt, &type, 1); // optional if(type == 'A') printf("Squirrel was accepted\n"); type = 81; write(skt, &type, 1); read(skt, &type, 1); int32_t response[2]; read(skt, &response, 8); printf("Squirrels: %d\nAverage Weight: %d\n", response[0], response[1]); close(skt); return 0; }