|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : 1Eugene Lototsky 2:5020/400 18 Nov 2002 23:41:22 To : All Subject : Сокеты --------------------------------------------------------------------------------
Как услышать, что говорит демон? Что не так?
Есть 2 скрипта: демон и клиент. Демон работает от рута и слушает обычного
клиента через сокет:
=== демон ===
$sockname='/tmp/control.sock';
socket sock, AF_UNIX, SOCK_STREAM, 0;
socket newsock, AF_UNIX, SOCK_STREAM, 0;
unlink ($sockname); #killing file if exists
$sun = sockaddr_un($sockname);
bind sock, $sun || die "bind";
chmod 0666, $sockname;
listen sock, 1;
while (1) {
print "deamon running...\n";
accept newsock, sock;
recv newsock, $data, 500, 0;
($host,$action) = split (';', $data);
if ($action eq "start") {
$output = start_firewall($host);
} elsif ($action eq "stop") {
$output = stop_firewall($host);
}
print sock $output;
}
============
Клиент, передав информацию демону, должен забрать от него ответ.
=== клиент ===
my $sockname='/tmp/control.sock';
socket sock, AF_UNIX, SOCK_STREAM, 0;
$sun = sockaddr_un ($sockname);
connect sock, $sun || die "bad socket";
send sock, $hostact, 0;
while (chomp ($msg=<>)){
print "Server $hishost responded ``$msg''\n";
}
shutdown sock, SHUT_RDWR;
============
--- ifmail v.2.15dev5
* Origin: Unitrade Pro (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/134275d5d8402.html, оценка из 5, голосов 10
|