* Librera fsock (tcpsock) programada por Titonus y SplinterGU *

- Funciones comunes:

int fsock_init(); // Inicializa la librera para poder usar las funciones y devuelve 0 si no hubo error
int fsock_quit(); // Cierra la librera 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); // Aade 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 nmero 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 mquina (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 conexin entre dos mquinas para usar las funciones de envo y recepcin,
usando las siguientes funciones ms 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 peticin por parte de un cliente (solo Servidor), devuelve -1 si no hay peticin
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); // Enva un puntero a travs del socket dado y devuelve el n de bytes enviados
int tcpsock_recv(int socket, pointer dato, tamao); // Recibe un puntero de un determinado tamao a travs del socket dado y devuelve el n de bytes recibidos

- Funciones UDP:

No es necesario establecer conexin entre dos mquinas pero para recibir mensajes es necesario usar
la funcin fsock_bind ms 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, tamao, string ip, int puerto); // Enva un puntero a travs del socket dado y devuelve el n de bytes enviados
int udpsock_recv(int socket, pointer dato, tamao, pointer ip, pointer puerto); // Recibe un puntero de un determinado tamao a travs del socket dado y devuelve el n de bytes recibidos