Article View: es.comp.os.linux.programacion
Article #17856Sockets asincronos en Linux
From: Juan Carrasco
Date: Wed, 20 Oct 1999 00:00
Date: Wed, 20 Oct 1999 00:00
41 lines
3113 bytes
3113 bytes
Estoy intentando construir una clase en C++ que encapsule el uso de los sockets en Linux. Soy b�sicamente un programador de Windows y me gustar�a conseguir que los sockets en Linux funcionaran igual que en Windows, es decir, los creas y te olvidas de ellos, cuando tienen datos para leer o conexiones para aceptar simplemente te avisan y ya est�. Llevo unos cuantos d�as consultando documentaci�n, tanto la ayuda de Linux sobre sockets como el manual de la librer�a de GNU para C. En esta documentaci�n he descubierto varias opciones que podr�an servirme para dar esa funcionalidad a los sockets en Linux. Entre otras, las que m�s me gustan son crear hilos encargados de escanear la entrada de datos para avisar cuando se puede leer o establecer los sockets en modo asincrono y que envien una se�al SIGIO cuando tengan datos para leer. Seguramente la palabra Windows har� que alguno se tire de los pelos, pero bueno, hasta lo malo tiene de vez en cuando algo aprovechable. La cuesti�n es la siguiente, he trabajado con Linux tanto a nivel de usuario como de programaci�n, ya he programado sockets en Linux y me han funcionado, pero lo que hicimos en aquellas pr�cticas es totalmente inpracticable ahora, no puedo tener el programa que queremos hacer funcionando como hicimos aquello, por diversas razones. Aunque conozco algo el sistema, hemos hecho muchas pr�cticas con �l durante la carrera, no termino de entender el concepto de las se�ales. Lo ideal ser�a que cada socket se enterara de cuando dispone de datos, y en un programa puedo tener varios sockets funcionando, por lo que con SIGIO me har�a falta un mecanismo extra para saber que sockets existen y detectar el que tiene datos, adem�s de que no se que capacidades tengo para llamar funciones desde un manejador de se�al. La opci�n de hilos dedicados es interesante y quiz� m�s completa, pero c�mo se consigue que un hilo avise a otro (descartadas las se�ales), porque la idea es que esto lo utilice cualquiera sin tener que hacer m�s trabajo que crear y usar los sockets. O sea, que no quiero que quien utilice esta librer�a tenga que definirse ni establecer manejadores de se�ales. Quiz� no me he explicado bien, pero si alguien capta el concepto y se le ocurre alguna forma de hacer que alguien que utilice un socket se pueda olvidar de �l si quiere, pues que me conteste. Gracias por adelantado. Juan. jcarras@glup.irobot.uv.es
Technical Details
Message-ID:
<7uk83t$8v7$1@peque.uv.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,d174b8549cf7b4e8,start X-Google-Attributes: gidf86c8,public From: "Juan Carrasco" <jcarras@glup.uv.es> Subject: Sockets asincronos en Linux Date: 1999/10/20 Message-ID: <7uk83t$8v7$1@peque.uv.es> X-Deja-AN: 538379774 Distribution: es X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 X-Complaints-To: postmaster@uv.es X-Trace: peque.uv.es 940417981 9191 147.156.160.4 (20 Oct 1999 11:13:01 GMT) Organization: Universitat de Valencia NNTP-Posting-Date: 20 Oct 1999 11:13:01 GMT Newsgroups: es.comp.os.linux.programacion