#include #include #include #include #include #include int main(){ int skt = socket(AF_INET, SOCK_DGRAM, 0); struct sockaddr_in sad; sad.sin_port = htons(5141); sad.sin_addr.s_addr = INADDR_ANY; sad.sin_family = AF_INET; if( bind(skt, (struct sockaddr *)(&sad), sizeof(struct sockaddr_in)) ){ // step 2 perror("bind"); return 1; } char buffer[1024]; struct sockaddr_in sender_address; socklen_t sad_len = sizeof(sender_address); while(1){ ssize_t reclen = recvfrom(skt, buffer, 1024, 0, (struct sockaddr *)&sender_address, &sad_len); buffer[reclen] = 0; printf("Received \"%s\" from %s on port %d\n", buffer, inet_ntoa(sender_address.sin_addr), ntohs(sender_address.sin_port)); sendto(skt, "Elephant", 9, 0, (struct sockaddr *)&sender_address, sad_len); } return 0; }