#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, verbose = 0, port_number, rexmt;
char option, hostname[16];
/* Socket data */
int in_socket_id, socket_id, server_socket_sz;
struct sockaddr_in client_socket, server_socket, in_socket;
struct hostent *hostp;
/* Transmission data */
char msg_buffer[1024], data_buffer[512], error[300], ack[4];
int offset = 0, bytes_rcvd, ack_recvd;
unsigned short block_number, opcode;
if ((socket_id = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
return;
}
in_socket.sin_family = AF_INET;
in_socket.sin_port = htons(0);
in_socket.sin_addr.s_addr = INADDR_ANY;
if (bind(socket_id, (struct sockaddr *) &in_socket, sizeof(in_socket)) == -1) {
return;
}
if ((hostp = gethostbyname(hostname)) == 0) {
return;
}
bzero((char *) &client_socket, sizeof(client_socket));
client_socket.sin_family = AF_INET;
client_socket.sin_port = htons(8724);
bcopy(hostp->h_addr, (char *) &client_socket.sin_addr, hostp->h_length);
bzero(msg_buffer,sizeof(msg_buffer));
memcpy(msg_buffer,"mensaje\0",sizeof("mensaje\0"));
socklen_t client_socket_len = sizeof(struct sockaddr_in);
if (sendto(socket_id, msg_buffer, sizeof(msg_buffer), 0, (struct sockaddr *) &client_socket, client_socket_len) < 0) {
return;
}
bzero(msg_buffer,sizeof(msg_buffer));
if(recvfrom(socket_id, msg_buffer, sizeof(msg_buffer), 0, (struct sockaddr *) &client_socket, &client_socket_len) == -1) {
return;
}
printf("%s\n", msg_buffer);
}