[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]Estoy intentando programar utilizando sockets en perl, para crear un
mini-servidorcito... Por ahora, me basta (para saber que mi prueba es
exitosa) que me mande de vuelta la cadena que yo escriba. Bueno, para esto
intente el siguiente programa:
-------------------------------
#!/usr/bin/perl
use IO::Socket;
$serverport=11450;
unlink "/tmp/mysock";
$server=IO::Socket::INET->new(LocalPort=>$serverport,
Type=>SOCK_STREAM,
Reuse=>1,
Listen=>10) or die "Couldn't be a TCP server
on port $serverport";
print "$! - $@";
while ($client = $server->accept()) {
$client->send("Bienvenido!\n",$flags) or die "Can't send";
$recv="";
while ($recv eq "") {
$client->recv($recv,$flags) or die "Can't recieve";
print $client $recv;
}
$client->send($recv,$flags) or die "Can't send";
}
-------------------------------
Ahora, cuando me conecto a este socket pasa lo siguiente:
-------------------------------
[gwolf@localhost temp]$ ./daemon.pl &
[1] 964
[gwolf@localhost temp]$ telnet localhost 11450
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Bienvenido!
asd
da
gsd
^]
telnet> q
Connection closed.
-------------------------------
O sea, me manda correctamente la primera cadena (Bienvenido!), pero al
parecer no recibe (o no vuelve a mandar) lo demas. De hecho, si substituyo
el
print $client $recv;
por
print $client "Dices que $recv";
me da una interminable cantidad de "Dices que" antes de que yo pueda
escribir nada.
Si lo cambio para que quede
print $client "Dices que $recv" if ($recv);
el comportamiento es identico al original.
Que estoy haciendo mal?
Gracias!
-------------------------------------------------------------------
NOTA - La UNAM se va a paro. Por favor, hasta que quede resuelto
el asunto, quien me quiera escribir hagalo a gwolf en chmd edu mx
-------------------------------------------------------------------
Gunnar Wolf gwolf en campus iztacala unam mx tel. 5623-1118
Universidad Nacional Autónoma de México, Campus Iztacala
Jefatura de Sección de Admon. de Sistemas y Telecomunicaciones
-------------------------------------------------------------------