API SolarSockets Servidor
De SolarSockets C++ Sockets C++
Este es el API de la inferface server de la libreria SolarSockets. Esta interface te permite crear aplicaciones servidor que requieran abrir un puerto TCP para atender una o varios cliente a la vez sin que estos se interfieran entre si, ya se crea un trhead para cada uno de ellos.
bool Listen (int Port);
Coloca al Socket server en modo escucha a traves de puerto Port.
bool Accept ();
Acepta una conexion entrante, debe ser usado en el evento Connect, para permitir la conexion de un nuevo cliente, si al terminar el evento connect, no se acepto al nuevo cliente este sera desconectado. util cuando se quiere filtrar ciertos clientes por su ip.
bool Close (int ID);
Cierra la conexion del cliente etiquetado como ID.
string getIP (int ID);
Obtiene la IP del cliente etiquetado como ID
bool Send (string Data, int ID);
Envia la cadena Data, hacia el cliente etiquetado como ID
bool SendMulticast (string Data);
Envia la cadena Data a todos los clientes conectados al servidor.
bool SendMulticast (string Data, int ID);
Envia la cadena Data a todos los clientes, menos al cliente etiquetado como ID.
bool Send (const char *Data, unsigned int Length, int ID);
Lo mismo que Send, pero puede enviar datos binarios
bool SendMulticast (const char *Data, unsigned int Length);
Lo mismo que SendMulticast, pero puede enviar datos binarios.
bool SendMulticast (const char *Data, unsigned int Length, int ID);
Lo mismo que SendMulticast, pero puede enviar datos binarios
void setLag(int LagMiliSeconds);
Simulacion de lag, util cuando queremos simular condiciones de uso, SolarSockets simulara un retrazo en el envio de datos de LagMiliSeconds milisegundo.
int getLag ();
Retorna la cantidad de lag simulado en Milisegundos.
int Count ();
Retorna el numero de clientes, conectados al servidor.
void setOnDataArrival (bool (*_OnDataArrival) (string, int, ssServer*));
Recibe como parametro una funcion, que sera llamada cuando se reciban datos provenientes del cliente etiquetado como ID, dichos datos seran colocados en una variable string, como caracteres ASCII
La funcion debe ser del tipo:
bool funcion (string Data, int ID, ssServer *Server);
void setOnDataArrival (bool (*_OnDataArrivalBin) (const char*, unsigned int, int, ssServer*));
Al igual que el anterior, se recibe como parametro una funcion que sera llamada cuando se reciban datos provenientes del cliente ID, los datos seran colocados en un array de chars, de la longitud indicada por el segundo parametro. A diferencia del anterior permite recibir datos binarios.
La funcion debe ser del tipo:
bool funcion (cosnt char* Data, unsigned int Length, int ID, ssServer *Server);
void setOnClose (void (*_OnClose)(int, ssServer*));
Recibe como parametro una funcion de sera llamada cuando ocurra el evento Close en el cliente etiquetado como ID, es decir cuando la conexion termine.
La funcion debe ser del tipo:
void funcion (int ID, ssServer *Server);
void setOnError (void (*_OnError)(int, int, ssServer*));
Recibe como parametro una funcion de sera llamada cuando ocurra un error con el cliente etiquetado como ID, a dicha funcion se le pasara como parametro un entero con el numero que identifica al error ocurrido.
La funcion debe ser del tipo:
void funcion (int ssError, int ID, ssServer *Server);
void setOnConnect (void (*_OnConnect)(int, ssServer*));
Recibe como parametro una funcion de sera llamada cuando ocurra la conexion de un nuevo cliente, al nuevo cliente se le asignara la etiqueta ID.
NOTA: Dentro de este evento debes usar la funcion Accept() para aceptar nuevas conexiones.
La funcion debe ser del tipo:
void funcion (int ID, ssServer *Server);
long int getOpenThreads ();
Regresa el numero de Hilos abiertos
long int getNumBlocksSent ();
Numero de bloques enviados (Llamadas a la funcion Send).
long int getNumBytesSent ();
Total de Bytes enviado.
long int getNumBlocksReceived ();
Numero de Bloques recibidos(Tramas recibidas).
long int getNumBytesReceived ();
Total de Bites recibidos
string getVersion ();
Retorna la version de la libreria


