#include #include #include #include #include #include #include #include #include #include #include #include #include void main () { int i, offset = 0, port_number, verbose = 0; char option; int socket_id, chld_socket_id, client_socket_sz, chld_socket_sz, dgram_length, ack_recvd; struct sockaddr_in server_socket, client_socket, chld_socket; char dgram_buffer[1024], msg_buffer[1024], data_buffer[512]; unsigned short op_code, block_number = 0; char filename[512], mode[16], error[300]; if ((socket_id = socket(PF_INET, SOCK_DGRAM, 0)) == -1) { return; } bzero(&server_socket, sizeof(server_socket)); server_socket.sin_family = AF_INET; server_socket.sin_addr.s_addr = INADDR_ANY; server_socket.sin_port = htons(8724); if (bind(socket_id, (struct sockaddr *) &server_socket, sizeof(server_socket)) == -1) { return; } bzero(dgram_buffer, 1024); client_socket_sz = sizeof(client_socket); if((dgram_length = recvfrom(socket_id, dgram_buffer, 1024, 0, (struct sockaddr *) &client_socket, (socklen_t *) &client_socket_sz)) == -1) { return; } if (sendto(socket_id, msg_buffer, offset, 0, (struct sockaddr *) &client_socket, (socklen_t) client_socket_sz) < 0) { return; } printf("%s\n", msg_buffer); }