Article View: es.comp.os.linux.programacion
Article #14240RE: Sockets y multiples conexiones.
From: Jose Godoy
Date: Mon, 27 Nov 2000 00:00
Date: Mon, 27 Nov 2000 00:00
49 lines
2835 bytes
2835 bytes
Juanjo �lvarez <juanjux@NOSPAMyahoo.es> escribi� en el mensaje de noticias slrn90isdr.1of.juanjux@Pascual.es... > Santiago Romero dijo sobre Sockets y multiples conexiones., > en fecha: Tue, 7 Nov 2000 22:36:09 +0100 > > | las conexiones entrantes. �tengo que hacer un vector para las > | conexiones y recorrerlo con un bucle? �usar el fork ese (que no > | s� usar) para duplicar el programa? :? > | > | En fin, como A. Gutierrez anda por aqui, planteo mi pregunta en > | busca de ayuda ;) > > Hola Santi. > > Lo habit'ual (arggg los acentos, maldita konsole), es utilizar el metodo > que comentas del fork o utilizar select() con una lista de sockets y ir > atendiendo aquellos en los que haya actividad. > > Para una especia de 'IRC descafeinado' como el que comentas yo tiraria > por el metodo de select aunque el del fork es mas sencillo. > > Dale un vistazo a esto, que seguro que te gusta: > > http://www.clickeas.com/linux/archivos/net.tar.bz2 > -- > http://www.clickeas.com/linux ------------ �Como que , "Para una especia de 'IRC descafeinado' como el que comentas yo tiraria por el metodo de select aunque el del fork es mas sencillo"...... Al hablar de fork(), imagino que estas hablando del servidor. Solo hay una forma, o almenos es la unica que conozco, de atender a multiples clientes. Y esa forma es utilizando un proceso hijo para cada uno de ellos, claro esta con fork(). Por otro lado tenemos a nuestro amigo select(), el cual nos informa del socket que ha recibido actividad. Tenemos que tener un array o cualquier otro tipo de estructura que contenga todos los sockets que tengamos abiertos, uno por cada cliente. En definitiva, y para no hacerme muy pesado, en un servidor de irc, tanto descafeinado como sin descafeinar, fork() y select() est�n intimamente relacionados, y por supuesto no puede estar el uno sin el otro. Fork() crea hijos que atienden conexiones, y select() nos informa del cliente que escribe o el hijo que lee de un socket.
Technical Details
Message-ID:
<CJBU5.52603$k06.1381341@telenews.teleline.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<9ks9u8.jc.ln@127.0.0.1> <slrn90isdr.1of.juanjux@Pascual.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,8bfdad65296f88d X-Google-Attributes: gidf86c8,public From: "Jose Godoy" <josebeg@teleline.es> Subject: RE: Sockets y multiples conexiones. Date: 2000/11/27 Message-ID: <CJBU5.52603$k06.1381341@telenews.teleline.es> X-Deja-AN: 698443959 References: <9ks9u8.jc.ln@127.0.0.1> <slrn90isdr.1of.juanjux@Pascual.es> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2615.200 X-Complaints-To: newsmaster@company.com X-Trace: telenews.teleline.es 975366114 195.57.29.134 (Tue, 28 Nov 2000 00:01:54 MET) Organization: Typhoon Authentication Testing Club X-MSMail-Priority: Normal Reply-To: "Jose Godoy" <josebeg@teleline.es> NNTP-Posting-Date: Tue, 28 Nov 2000 00:01:54 MET Newsgroups: es.comp.os.linux.programacion