#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <string.h>

#define PUERTO 55555
#define UNABLE_TO_CREATE_SOCKET -1

main()
{
int iSocketDelServer;
char iOption = '0';
struct sockaddr_in serv_addr;
char msg[100];
struct sockaddr_in DireccionDelServer;

printf("Comenzando la comunicacion cliente....\n");


iSocketDelServer = socket(AF_INET,SOCK_STREAM,0);
if (iSocketDelServer == UNABLE_TO_CREATE_SOCKET)
{
	perror("No se pudo obtener el descriptor del server");
	exit(1);
}
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(PUERTO);
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);

if (connect(iSocketDelServer,(struct sockaddr*)&serv_addr,sizeof(serv_addr)) == -1)
{
	perror("No se pudo localizar el Server");	
	exit(1);
}

do
{
	printf("(CLIENTE) Ingrese el mensaje a enviar:\n");
	fgets(msg,100,stdin);
	printf("enviando mensaje...\n");
	write(iSocketDelServer,&msg,sizeof(msg));
	printf("ok \n");
	fflush(stdin);
	if(read(iSocketDelServer,msg,sizeof(msg)) <= 0)
	{
		printf("error al recibir el mensaje");
		iOption='0';
		exit(1);
	}

	printf("Mensaje recibido por el servidor: %s \n",msg);
	iOption='1';

} while (iOption != '0');
close(iSocketDelServer);
printf("fin de la transmision\n");
exit(1);
}
