Título: [Idea] Librería para simplificar el uso de sockets Publicado por: Miky Gonzalez en 19 Noviembre 2014, 19:15 pm Creo este tema para que aporten idea, una mejor solución o cualquier cosa que puedan aportar para mejorar esta pequeña idea.
En cuestión quiero crear una librería para simplificar el uso de sockets, en otra palabras, hacer las cosas más cómodamente. La estructura general de la librería se compone de una estructura que almacena datos del socket; una estructura candidata posible podría ser algo como: Código
La segunda cosa fundamental será la inicialización de esa estructura. Para ello necesitamos 2 funciones auxiliares que recibirán los parametros directamente desde una función principal iniciar_socket; la primera de ellas crear_socket, supongamos que AF (Adress Format) es INET (IP y puerto): AF_INET; la segunda de ellas podría tener 2 variantes: iniciar_sockaddr e iniciar_sockaddrany. La diferencia de estas es que en la estructura sockaddr_in, sin_addr atendería en todo el rango: 127.0.0.1/24. Funciones secundarias, que bien podrían servir para formar parte de una función principal que automatice el proceso dependiendo de las necesidades del usuario final ó para tener el código más organizado, limpio, estético y hacer las cosas más sencillas. Estas son las funciones conectar_socket, bind_socket, escuchar_socket, aceptar_socket (esta según lo anterior también podría tener dos variantes: aceptar_socket y aceptar_socket_addrany), cerrar_socket. Las funciones de lectura y escritura pueden usarse nativamente. Un pseudocódigo de cómo funcionaría la librería según las ideas que tengo ahora mismo: Código
De momento eso es todo. Aporten ideas, comentarios, soluciones, otra forma de hacerlo... Saludos. Título: Re: [Idea] Librería para simplificar el uso de sockets Publicado por: ivancea96 en 19 Noviembre 2014, 21:32 pm Si te sirve de apoyo, yo tengo esta estructura:
Código
Más que nada para que veas las funcionalidades que tiene. Son las básicas. Título: Re: [Idea] Librería para simplificar el uso de sockets Publicado por: Miky Gonzalez en 19 Noviembre 2014, 21:50 pm Gracias por el aporte @ivancea96, claro que me sirve, aunque no uso C++, y la orienzación a objetos lo sustituyo por un struct que contenga la llamada a las funciones (intentando imitar programación con objetos, por ejemplo socket.conectar("127.0.0.1", 8080)), aunque estoy planteándome el uso de funciones predefinidas que obtengan como parámetro la estructura que contenga el socket y la estructura sockaddr_in.
Los principales motivos por el cual quiero usar funciones predefinidas es para ahorrarme crear una estructura que contenga 7 punteros que deben ser inicializados cada vez que cree una nueva estructura. Publicaré el código cuando lo tenga como un aporte. Estoy puliendo crear una función, que no necesita explicación: create_server_single_addrany. Saludos. |