Hi
I have 2 simple scripts to send short files from a
win2k box to HP unix box ( for learning purposes only
). They work fine, but I am looking for ideas on why
the client (win2k) needs a sleep statement after each
line write. If I leave it out, I get a "Connection
reset by peer" on the receiving end(unix)
Thanks and the relative code is below:
-----
# Server (Receiver on Unix end)
if ($pid = fork) { # parent
close(C);
waitpid( -1, &WNOHANG );
next; # ready for another client
} else {
# child
die "can't fork: $!" unless defined $pid;
close(S);
print C "Connected to $ip:$port ";
# get file name
sysread(C, $fname, 128) or die "couldn't
read: $!\n";
$fname =~ s/\n//;
print "recieving file: $fname\n";
while ( sysread(C, $buf, 128) ) {
$msg .= $buf;
}
open (F, ">$fname") or die "couldn't open
it: $!";
# open a new file with the file name and
write to it
print F $msg;
close F;
print "Recieved file\n";
exit;
}
------
# client (win2k sender)
socket(SOCK,AF_INET,SOCK_STREAM,$proto) || die "$0:
Cannot open socket\n";
connect(SOCK, $remote) or die "can't connect: $!\n";
# send filename to server
print "sending file $fname\n";
$bytes = syswrite(SOCK, $fname, length($fname));
sleep 1;
open(F, "<$fname") or die "coundn't open: $!";
@buf = <F>;
foreach $line (@buf) {
# why do we need to sleep ?
syswrite(SOCK, $line, length($line)) or die "can't
write: $!";
sleep 1;
}
close F;
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>