#ifndef _CLIENT_H_
#define	_CLIENT_H_

#include <sys/socket.h>
#include <pthread.h>

//Posibles estados de las ranuras
#define DISPONIBLE 0
#define ASIGNADO   1
#define OCUPADO    2 

//Estructura para la gestión de ranuras disponibles
typedef struct T_socket{
  int id;
  int status;
  pthread_mutex_t mutex;
} t_socket;

void error(char *msg);
void lockSocket(t_socket *sock);
void unlockSocket(t_socket *sock);
int getConnNumber();
static void *careClient(void *asock);
int createClientThread(t_socket *sock);
void initSock(int port);
int getNextSock();
void listenSock();

#endif