Article View: es.comp.os.linux.programacion
Article #13995Servidor TCP en Perl
From: Dani Pardo
Date: Tue, 19 Dec 2000 09:09
Date: Tue, 19 Dec 2000 09:09
47 lines
2266 bytes
2266 bytes
Tengo un servidor TCP en perl, que hace de "echo" de lo que le envias.
La cosa funciona bien si hay una sola conexi�n, pero si hay 2
conexiones concurrentes, la segunda se queda esperando a que finalize la
primera.
En principio esto no es problema por el problema que tengo que
resolver. El caso es que si la primera conexi�n se queda en CLOSE_WAIT o
algo asi, los dem�s clientes no pueden hacer nada, y es como si el
servicio estuviese inactivo.
C�mo podria modificar el programa para que sirviese m�ltiples
conexiones a la vez?
Gracias,
#!/usr/bin/perl -w
#use strict;
use IO::Socket;
my $dades;
my ($client,$server); # Socket handles
$server= IO::Socket::INET->new(LocalPort => 4114,
Type => SOCK_STREAM,
Reuse => 1,
Listen => 10) or die "No puedo abrir socket en
puerto 4114\n";
print "Escuchando en el puerto 4114...\n";
while($client=$server->accept())
{
while($client->recv($dades_rebudes,20) &&
(!($dades_rebudes=~/quit/)))
{
printf("%s\n",$dades_rebudes);
$client->send($dades_rebudes);
}
print "Cerrando cliente.\n"; $client->close();
}
$server->close();
---
Dani Pardo, dani@enpl.es
Enplater s.a
Technical Details
Message-ID:
<3A3F25B5.936991B3@enpl.es>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!newsfeed1.online.no!nextra.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.skycache.com!Cidera!newsfeed.comtenidos.com!m2newsfeed.uni2.es!lola!lola.ctv.es!calix.enpl.es!nobodyShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,cd63928546b03ad0,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2000-12-19 01:34:42 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!newsfeed1.online.no!nextra.com!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.skycache.com!Cidera!newsfeed.comtenidos.com!m2newsfeed.uni2.es!lola!lola.ctv.es!calix.enpl.es!nobody From: Dani Pardo <dani@enpl.es> Newsgroups: es.comp.os.linux.programacion Subject: Servidor TCP en Perl Date: Tue, 19 Dec 2000 10:09:09 +0100 Organization: CTV/JET Lines: 47 Message-ID: <3A3F25B5.936991B3@enpl.es> NNTP-Posting-Host: ctv21225138066.ctv.es Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: lola.ctv.es 977217305 16575 212.25.138.66 (19 Dec 2000 09:15:05 GMT) X-Complaints-To: usenet@lola.ctv.es NNTP-Posting-Date: 19 Dec 2000 09:15:05 GMT X-Mailer: Mozilla 4.61 [en] (Win98; I) X-Accept-Language: en