#!/usr/bin/perl -w use strict; use Socket; my ($remote,$port, $iaddr, $paddr, $proto, $line); $remote = pop(@ARGV); my $file = pop(@ARGV); if (!$file) { $file = 'filesystem.bin'; } if (!-r $file) { $file = '../server/Firmware/squeezebox.bin'; } $port = 31337; open FS, $file || die "open: $file"; binmode FS; print "Connecting to squeezebox at $remote:$port\n"; #$port = getservbyname($port, 'tcp'); $iaddr = inet_aton($remote) || die "bad IP: $remote"; $paddr = sockaddr_in($port, $iaddr); $proto = getprotobyname('tcp'); socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; connect(SOCK, $paddr) || die "connect: $!"; my $size = -s $file; print "Sending $size bytes\n"; my $bytesread=0; my $totalbytesread=0; my $buf; while ($bytesread=read(FS, $buf, 256)) { print SOCK $buf; $totalbytesread += $bytesread; print "$totalbytesread / $size\n"; } print "Done\n"; close (SOCK) || die "close: $!"; exit;