67 lines
1.9 KiB
Perl
67 lines
1.9 KiB
Perl
|
|
|||
|
|
|||
|
use Win32::Pipe;
|
|||
|
|
|||
|
|
|||
|
####
|
|||
|
# You may notice that named pipe names are case INsensitive!
|
|||
|
####
|
|||
|
|
|||
|
$PipeName = "\\\\.\\pipe\\TEST this LoNG Named Pipe!";
|
|||
|
|
|||
|
print "I am falling asleep for few seconds, so that we give time\nFor the server to get up and running.\n";
|
|||
|
sleep(4);
|
|||
|
print "\nOpening a pipe ...\n";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if ($Pipe = new Win32::Pipe($PipeName)){
|
|||
|
print "\n\nPipe has been opened, writing data to it...\n";
|
|||
|
print "-------------------------------------------\n";
|
|||
|
$iFlag2 = 1;
|
|||
|
$Pipe->Write( "\n" . Win32::Pipe::Credit() . "\n\n");
|
|||
|
while($iFlag2){
|
|||
|
print "\nCommands:\n";
|
|||
|
print " FILE:xxxxx Dumps the file xxxxx.\n";
|
|||
|
print " Credit Dumps the credit screen.\n";
|
|||
|
print " Quit Quits this client (server remains running).\n";
|
|||
|
print " Exit Exits both client and server.\n";
|
|||
|
print " -----------------------------------------\n";
|
|||
|
|
|||
|
$In = <STDIN>;
|
|||
|
chop($In);
|
|||
|
|
|||
|
if (($File = $In) =~ s/^file:(.*)/$1/i){
|
|||
|
if (-s $File){
|
|||
|
if (open(FILE, "< $File")){
|
|||
|
while ($File = <FILE>){
|
|||
|
$In .= $File;
|
|||
|
};
|
|||
|
close(FILE);
|
|||
|
undef $File;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
if($In =~ /^credit$/i){
|
|||
|
$In = "\n" . Win32::Pipe::Credit() . "\n\n";
|
|||
|
}
|
|||
|
|
|||
|
$iFlag2 = $Pipe->Write("$In");
|
|||
|
if($In =~ /^(exit|quit)$/i){
|
|||
|
print "\nATTENTION: Closing due to user request.\n";
|
|||
|
$iFlag2 = 0;
|
|||
|
}
|
|||
|
|
|||
|
undef $In;
|
|||
|
|
|||
|
}
|
|||
|
$Pipe->Close();
|
|||
|
}else{
|
|||
|
($Error, $ErrorText) = Win32::Pipe::Error();
|
|||
|
print "Error:$Error \"$ErrorText\"\n";
|
|||
|
sleep(4);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|