Re: rettifica (was Re: un server web LEGGERO... quale?)
On Thu, Jul 11, 2002 at 02:25:10PM +0200, /dev/null wrote:
> > On Thu, Jul 11, 2002 at 11:54:13AM +0200, walter valenti wrote:
> > > Diciamo che puoi avere due approcci diversi per le connesioni:
> > >
> > > Il caso più semplice è un solo processo che gestisce la singola connessione.
> > > Il questo caso un server è in grado di gestire una sola connessione alla volta.
> > >
> > > Il secondo caso più complesso ma più utile, è quello del server concorrente: il
> > > server quando viene lanciata forka in in numero definito di figli, in questo
> > > modo potra servire contemporaneamente più connessioni.
> >
> > Oppure con un server concorrente, gestire un thread (non processo) per
> > client. Oppure, altra tecnica, e` quella del preforked server,
> > che in sostanza forka un certo numero di figli alla partenza,
> > risparmiandosi il costo della fork al momento della richiesta di
> > un client. Oppure quella del prethreaded.
> Ma che dite?
> Non e` *assolutamente* vero che i server single-threaded gestiscano una
> sola connessione alla volta!
Si` ma, single-thread e` una cosa diversa da single-process.
Tirando ad indovinare quel server *potrebbe* fare una roba del
genere...
#include <pthread.h>
...
for( ; ; ) {
...
fd = accept(...);
pthread_create(&thread_id, NULL, &gestiamoci_la_connessione, fd);
}
il processo e` uno solo, i thread tanti
Difatti...
> Basta provare:
> $ ps -ef | grep h\\ttpd
> www-data 27032 1 0 14:15 ? 00:00:00 /usr/sbin/thttpd -C /etc/thttpd/thttpd.conf -i /var/run/thttpd.pid
> $ netstat -na | grep :80
> tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
> tcp 0 0 ip.del.ser.ver:80 ip.di.un.client:33333 ESTABLISHED
> tcp 0 0 ip.del.ser.ver:80 ip.di.un.client:33332 ESTABLISHED
PS Spero di non aver scritto troppe boiate
-Roberto
--
To UNSUBSCRIBE, email to debian-italian-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: