Using NS3000/iX Network Services (36920-90008)

Chapter 7 157
Remote Process Management
RPM Program 2
RPM Program 2
$ standard_level 'HP3000', uslinit$
program creature(datafile); {"datafile" must be an already
existing file}
const
maxdata = 2000;
maxmsg = maxdata + 2;
maxname = 20;
maxloc = 20;
type
byte = 0..255;
shortint = -32768..32767;
datatype =
record
len : shortint;
msg : packed array[1..maxdata] of char;
end;
nametype = packed array[1..maxname] of char;
loctype = packed array[1..maxloc] of char;
var
datafile : text;
rpmstringlen : integer;
socketname : packed array [1..16] of char;
nodename : packed array [1..16] of char;
destdesc : integer;
calldesc : integer;
vcdesc : integer;
result : integer;
data : datatype;
strdata : string[maxdata];
socknmlen : integer;
nodenmlen : integer;
y_data : char;
y_len : integer;
procedure terminate; intrinsic;
{RPM and IPC intrinsic declarations}
procedure rpmgetstring; intrinsic;
procedure ipcerrmsg; intrinsic;
procedure ipclookup; intrinsic;
procedure ipccreate; intrinsic;
procedure ipcconnect; intrinsic;
procedure ipcrecv; intrinsic;
procedure ipcsend; intrinsic;
procedure ipcshutdown; intrinsic;
{error handling procedure}
procedure check (result : integer);
{error procedure}
begin
if result < > 0 then
terminate; {failed}
end;