svdrpsend.pl

来自「DVBstream is based on the ts-rtp package」· PL 代码 · 共 58 行

PL
58
字号
#!/usr/bin/perluse Socket;use Getopt::Std;$Usage = qq{Usage: $0 options command...Options: -d hostname        destination hostname (default: localhost)         -p port            SVDRP port number (default: 2001)};die $Usage if (!$ARGV[0] || !getopts("d:p:"));$Dest = $opt_d  || "localhost";$Port = $opt_p  || 2001;$Cmd  = "@ARGV" || Error("missing command");$Timeout = 10; # max. seconds to wait for response$SIG{ALRM} = sub { Error("timeout"); };alarm($Timeout);$iaddr = inet_aton($Dest)                   || Error("no host: $Dest");$paddr = sockaddr_in($Port, $iaddr);$proto = getprotobyname('tcp');socket(SOCK, PF_INET, SOCK_STREAM, $proto)  || Error("socket: $!");connect(SOCK, $paddr)                       || Error("connect: $!");select(SOCK); $| = 1;Receive();Send($Cmd);Send("quit");close(SOCK)                                 || Error("close: $!");sub Send{  my $cmd = shift || Error("no command to send");  print SOCK "$cmd\r\n";  Receive();}sub Receive{  while (<SOCK>) {        print STDOUT $_;        last if substr($_, 3, 1) ne "-";        }}sub Error{  print STDERR "@_\n";  close(SOCK);  exit 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?