Ir al contenido

Simple Network Library

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 19:36 21 abr 2009 por 85.53.96.231 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
Simple network library
Logotipo de Simple Network Library.
Información general
Tipo de programa Biblioteca informática
Desarrollador Jesús Hernández Gormaz (autor inicial)
Licencia GPL (software libre)
Información técnica
Programado en C
Versiones
Última versión estable (Aun en fase beta) (5 de Abril del 2009)
Última versión en pruebas 0.0.0 (5 de Abril del 2009)
Enlaces

Simple Network Library (SNL) es una biblioteca desarrollada con el lenguaje C que proporcionan funciones para realizar operaciones de comunicación en red.

Proporciona herramientas para el desarrollo de videojuegos y cualquier otra aplicación. Una de sus grandes virtudes es el tratarse de una biblioteca multiplataforma, soportando oficialmente los sistemas GNU/Linux y OpenSolaris, además de otras arquitecturas/sistemas como windows, MacOS... Las siglas le vienen de Simple Network Library que se traduce como biblioteca de red simple. Desarrolladas inicialmente por Jesús Hernández Gormaz, desarrollador de videojuegos para la plataforma GNU/Linux entre otros programas informáticos programados.

Soporta los protocolos de IP tanto de IPv4 como de IPv6 además de los protocolos de comunicación TCP y UDP.

La biblioteca se distribuye bajo la licencia GPL.

Ejemplos

Ejemplo del uso de SNL usando IPv4 en C.

#include <stdio.h>
#include <string.h>
#include <SNL/SNL.h>

int main(int argc, char *argv[]){
   int conexion;
   char texto[9024];
   char direccion[1024], informacion[500];
   grupo_conexiones *a;
   register int i;
   informacion_biblioteca_SNL(&informacion[0], 500);
   strcpy(&texto[0], "GET ");
   printf("Host: %s\n", "google.es");
   SNL_DNS(&direccion[0], "google.es", NULL, 1024, 0);
   printf("DNS obtenido %s\n", &direccion[0]);
   SNL_DNS_IPv4(&direccion[0], "google.es");
   printf("DNS obtenido %s\n", &direccion[0]);
   strcat(&texto[0], "/index.html");
   strcat(&texto[0], " HTTP/1.1\r\nHost: ");
   strcat(&texto[0], "www.google.es\r\nContent-Type: text/html\r\n\r\n-*-\r\n");
   conexion= SNL_conectar_TCP_IPv4(&direccion[0], 80);
   printf("conectado\n");
   printf("texto copiado\n");
   a= SNL_nuevo_grupo_conexiones(SIN_CONEXION);
   SNL_nueva_conexion_grupo(conexion, a);
   if(SNL_enviar_grupo_TCP(a, &texto[0], strlen(&texto[0]), 0) == 0){
      printf("enviado\n");
   }
   SNL_tiempo_espera_grupo(a, 2, 0);
   SNL_comprobar_grupo_conexiones(a);
   SNL_tiempo_espera_grupo(a, 0, 500000);
   while(SNL_conexion_activa_grupo_conexiones(a) == conexion){
      if(SNL_recibir_TCP(conexion, &texto[0], 90024, 0) <= 0){
         break;
      }else{
         printf("%s", &texto[0]);
      }
      if(SNL_comprobar_grupo_conexiones(a) == -1){
         break;
      }
   }
   SNL_cerrar_grupo_conexiones(a);
   printf("\n%s\n\n", &informacion[0]);
   return 0;
}

Enlaces externos