HI ALL.
tcp server
#!/usr/bin/perl
use Socket;
$port = '7025';
$proto = getprotobyname('tcp');
$EOL = "\015\012";
socket(SERV, PF_INET, SOCK_STREAM, $proto) or die "socket: $!\n";
setsockopt(SERV, SOL_SOCKET, SO_REUSEADDR, pack("l",1)) or die "setsock $!\n";
$paddr = sockaddr_in($port,INADDR_ANY);
bind(SERV,$paddr) or die "bind: $! \n";
listen(SERV, SOMAXCONN) or die "listen: $! \n";
print "Server started on port $port\n";
while ($client_addr = accept (CLIENT,SERV)) {
($client_port, $client_ip ) = sockaddr_in($client_addr);
$client_ipnum = inet_ntoa($client_ip);
$client_host = gethostbyaddr($client_IP , AF_INET);
print "connection from $client_host $client_ipnum \n";
while ( ) {
if (/date|time/i) {print CLIENT `date 2>&1`; print CLIENT $EOL;}
elsif (/quit|exit/i) {last; }
elsif (/who/i ) {$out = `who` ; print CLIENT $out , $EOL;}
else {print CLIENT "Commands: quit date who " ,$EOL};
}
close CLIENT;
}
tcp client или telnet большой разницы нет.
#!/usr/bin/perl
use Socket;
use IO::Handle;
$host = "127.0.0.1";
$port = "7025";
$EOL = "\015\012";
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
$iaddr = inet_aton($host);
$paddr = sockaddr_in($port, $iaddr);
connect (SOCK, $paddr);
SOCK->autoflush(1);
print SOCK "who" ,$EOL;
#print SOCK "date" ,$EOL;
while () {print $_;}
close SOCK;
exit;
если я коннекчусь telnet-ом на сервер и набираю команду например who то команда выполняется ,
но ее вывод не видно , если я наберу другую команду например date , то теперь мне выведет
вывод предидущей команды и т.д . тоже самое с клиентом на perl . где тут собака поралась ???
в чем может быть дело ?
telnet 127.0.0.1 7025
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
who
who
sasha pts/0 Jan 6 08:54 (192.168.1.2)
sasha pts/1 Jan 6 08:54 (192.168.1.2)
sasha pts/2 Jan 6 09:01 (192.168.1.2)
sasha pts/3 Jan 6 09:02 (192.168.1.2)
sasha pts/4 Jan 6 09:40 (192.168.1.2)
date
sasha pts/0 Jan 6 08:54 (192.168.1.2)
sasha pts/1 Jan 6 08:54 (192.168.1.2)
sasha pts/2 Jan 6 09:01 (192.168.1.2)
sasha pts/3 Jan 6 09:02 (192.168.1.2)
sasha pts/4 Jan 6 09:40 (192.168.1.2)
who
Tue Mar 28 10:55:19 GMT-4 2006
i t.d.
![](/img/p.gif)
![](/img/p.gif)
Ответ на:
комментарий
от Onanim
![](/img/p.gif)
Ответ на:
комментарий
от j262
![](/img/p.gif)
Ответ на:
комментарий
от j262
![](/img/p.gif)
Ответ на:
комментарий
от j262
![](/img/p.gif)
![](/photos/5912:-1089048451.jpg)
Ответ на:
комментарий
от j262
![](/img/p.gif)
Ответ на:
комментарий
от Onanim
![](/img/p.gif)
Ответ на:
комментарий
от j262
![](/img/p.gif)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Perl: проблема совместимости «use Socket;» (2004)
- Форум Perl & win32 (2005)
- Форум Perl. Сокеты. (2007)
- Форум perl, IPC & socket - чего тут не так? (2006)
- Форум SCTP recv problems (2014)
- Форум клиент и сервер на Перл (2009)
- Форум socket with function mysql (2009)
- Форум [perl] проброс проги в сокет (2008)
- Форум Debian Lenny 5.0.7 exim 4.69-9 уязвим (2010)
- Форум Почему не работает скрипт? (2013)