#include <sys/param.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/time.h>
#include <netdb.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <signal.h>
#include <wait.h>
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);
}