* Librería fsock (tcpsock) programada por Titonus y SplinterGU *

- Funciones comunes:

int fsock_init(); // Inicializa la librería para poder usar las funciones y devuelve 0 si no hubo error
int fsock_quit(); // Cierra la librería y devuelve 0 si no hubo error

int fsock_close(int socket); // Cierra un socket (TCP o UDP) y devuelve 0 en caso afirmativo
int fsock_bind(int socket, int puerto); // Asocia a un socket un puerto y devuelve 0 en caso afirmativo (solo Servidor)

void fsock_fdzero=fsock_socketset_free(int socketset); // Inicia o limpia el socketset indicado (hasta 32 socketsets disponibles)
int fsock_fdset=fsock_socketset_add(int socketset, int socket); // Añade un socket al socketset indicado y devuelve el nº de sockets en el socketset
int fsock_clr=fsock_socketset_del(int socketset, int socket); // Elimina un socket del socketset indicado y devuelve el nº de sockets en el socketset
int fsock_socketset_check(int socketset); // Devuelve el número de sockets con actividad del socketset indicado, sin tiempo de espera
int fsock_fdisset(int socketset, int socket); // Devuelve si el socket dado del socketset tiene un evento
int fsock_select(int socketset, int timeout); //Como check, pero con tiempo de espera (no regresa inmediatamente)

string fsock_get_iphost(int opcion); // Devuelve la IP o Host de la máquina (0 Host, 1 IP)
string fsock_get_ipstr(pointer ip); // Devuelve la cadena IP que contiene el puntero ip devuelto por la funcion tcpsock_accept o udpsock_recv

- Funciones TCP:

Se ha de establecer antes una conexión entre dos máquinas para usar las funciones de envío y recepción,
usando las siguientes funciones más fsock_bind para poder recibir.

int tcpsock_open(); // Crea y devuelve un nuevo socket TCP y devuelve -1 en caso negativo
int tcpsock_listen(int socket, int peticiones); // Fija el nº de peticiones de un socket asociado (solo Servidor)
int tcpsock_accept(int socket, pointer ip, pointer puerto); // Devuelve un nuevo socket correspondiente a una petición por parte de un cliente (solo Servidor), devuelve -1 si no hay petición
int tcpsock_connect(int socket, string ip, int puerto); // Conecta el socket especificado al servidor dado (ip y puerto) y devuelve 0 si fue correcto (solo Cliente)
int tcpsock_send(int socket, pointer dato); // Envía un puntero a través del socket dado y devuelve el nº de bytes enviados
int tcpsock_recv(int socket, pointer dato, tamaño); // Recibe un puntero de un determinado tamaño a través del socket dado y devuelve el nº de bytes recibidos

- Funciones UDP:

No es necesario establecer conexión entre dos máquinas pero para recibir mensajes es necesario usar
la función fsock_bind más las siguientes funciones.

int udpsock_open(); // Crea y devuelve un nuevo socket UDP y devuelve -1 en caso negativo
int udpsock_send(int socket, pointer dato, tamaño, string ip, int puerto); // Envía un puntero a través del socket dado y devuelve el nº de bytes enviados
int udpsock_recv(int socket, pointer dato, tamaño, pointer ip, pointer puerto); // Recibe un puntero de un determinado tamaño a través del socket dado y devuelve el nº de bytes recibidos