🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #13995

Servidor TCP en Perl

#13995
From: Dani Pardo
Date: Tue, 19 Dec 2000 09:09
47 lines
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!nobody

Show 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