[script] Remove arbitrary limit on script line lengths
[people/dverkamp/gpxe.git] / contrib / p910nd-0.8 / client.pl
1 #!/usr/bin/perl
2
3 # edit this to the printer hostname
4 $them = 'ken';
5 $port = 9101;
6
7 open(STDIN, "$ARGV[0]") if $#ARGV >= 0;
8
9 use Socket;
10 #use Sys::Hostname;
11
12 #$hostname = hostname;
13
14 ($name, $aliases, $proto) = getprotobyname('tcp');
15 ($name, $aliases, $port) = getservbyname($port, 'tcp')
16         unless $port =~ /^\d+$/;
17
18 #$thisaddr = inet_aton($hostname);
19 #defined($thisaddr) or &errexit("inet_aton: cannot resolve $hostname\n");
20
21 $thataddr = inet_aton($them);
22 defined($thataddr) or &errexit("inet_aton: cannot resolve $them\n");
23
24 socket(S, PF_INET, SOCK_STREAM, $proto) or &errexit("socket: $!\n");
25
26 #$this = sockaddr_in(0, $thisaddr);
27 #bind(S, $this) || &errexit("bind: $!\n");
28
29 $that = sockaddr_in($port, $thataddr);
30 connect(S, $that) || &errexit("connect: $!\n");
31
32 select(S); $| = 1; select(STDOUT);
33
34 $buffer = '';
35 while (1)
36 {
37         $rin = '';
38         vec($rin, fileno(S), 1) = 1;
39         $nfound = select($rout=$rin, $wout=$rin, undef, undef);
40         if (vec($rout, fileno(S), 1)) {
41                 print STDERR "$buffer\n" if
42                         defined($nread = sysread(S, $buffer, 8192));
43         }
44         if (vec($wout, fileno(S), 1)) {
45                 $nread = read(STDIN, $buffer, 8192);
46                 last if $nread == 0;
47                 &errexit("write: $!\n") unless
48                         defined($written = syswrite(S,$buffer,$nread));
49         }
50 }
51 close(S);
52 exit 0;
53
54 sub errexit
55 {
56         print STDERR @_;
57         exit 2;
58 }