12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #!/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;
- }
|