mirror of
https://github.com/ipxe/ipxe
synced 2025-12-10 21:41:09 +03:00
Initial revision
This commit is contained in:
58
contrib/p910nd-0.8/client.pl
Executable file
58
contrib/p910nd-0.8/client.pl
Executable file
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/perl
|
||||
|
||||
# edit this to the printer hostname
|
||||
$them = 'ken';
|
||||
$port = 9101;
|
||||
|
||||
open(STDIN, "$ARGV[0]") if $#ARGV >= 0;
|
||||
|
||||
use Socket;
|
||||
#use Sys::Hostname;
|
||||
|
||||
#$hostname = hostname;
|
||||
|
||||
($name, $aliases, $proto) = getprotobyname('tcp');
|
||||
($name, $aliases, $port) = getservbyname($port, 'tcp')
|
||||
unless $port =~ /^\d+$/;
|
||||
|
||||
#$thisaddr = inet_aton($hostname);
|
||||
#defined($thisaddr) or &errexit("inet_aton: cannot resolve $hostname\n");
|
||||
|
||||
$thataddr = inet_aton($them);
|
||||
defined($thataddr) or &errexit("inet_aton: cannot resolve $them\n");
|
||||
|
||||
socket(S, PF_INET, SOCK_STREAM, $proto) or &errexit("socket: $!\n");
|
||||
|
||||
#$this = sockaddr_in(0, $thisaddr);
|
||||
#bind(S, $this) || &errexit("bind: $!\n");
|
||||
|
||||
$that = sockaddr_in($port, $thataddr);
|
||||
connect(S, $that) || &errexit("connect: $!\n");
|
||||
|
||||
select(S); $| = 1; select(STDOUT);
|
||||
|
||||
$buffer = '';
|
||||
while (1)
|
||||
{
|
||||
$rin = '';
|
||||
vec($rin, fileno(S), 1) = 1;
|
||||
$nfound = select($rout=$rin, $wout=$rin, undef, undef);
|
||||
if (vec($rout, fileno(S), 1)) {
|
||||
print STDERR "$buffer\n" if
|
||||
defined($nread = sysread(S, $buffer, 8192));
|
||||
}
|
||||
if (vec($wout, fileno(S), 1)) {
|
||||
$nread = read(STDIN, $buffer, 8192);
|
||||
last if $nread == 0;
|
||||
&errexit("write: $!\n") unless
|
||||
defined($written = syswrite(S,$buffer,$nread));
|
||||
}
|
||||
}
|
||||
close(S);
|
||||
exit 0;
|
||||
|
||||
sub errexit
|
||||
{
|
||||
print STDERR @_;
|
||||
exit 2;
|
||||
}
|
||||
Reference in New Issue
Block a user