NetIPC 3000/XL Programmer's Reference Manual (5958-8600)
Table Of Contents
- 1 NetIPC Fundamentals
- 2 Cross-System NetIPC
- 3 NetIPC Intrinsics
- 4 NetIPC Examples
- A IPC Interpreter (IPCINT)
- B Cause and Diagnostic Codes
- C ErrorMessages
- D Migration From PTOP to NetIPC and RPM
- E C Program Language Considerations

Chapter 4 135
NetIPC Examples
Example 1
readln(strdata); {read message}
data.len := strlen(strdata); {store message length}
strmove(data.len, strdata, 1, data.msg, 1); {store message}
ipcsend(vcdesc, data, data.len+2, , ,result) {send message with length
as first 2 bytes}
if result <> 0 then leave(result); {failed}
end;
{connection shutdown procedure}
data.len := 4;
data.msg := 'END?' { termination request}
ipcsend(vcdesc, data, 6, , , result);
writeln('END sent');
if result <> 0 then leave(result);
y_len := 1;
ipcrecv(vcdesc, y_data, y_len, , , result); {receive 'Y' confirmation}
if (y_data = 'Y') then writeln('Y received');
if (y_data = 'Y') and (result = 0) then
ipcshutdown(vcdesc)
else
begin
writeln('Warning: shutdown not confirmed or result 0');
leave(result);
end;
end.
Program 1B
$standard_level 'HP3000', uslinit$
program connection_example2 (output);
const
maxdata = 2000;
maxname = 20;
type
smallint = -32768..32767;
datatype = packed array [1..maxdata] of char;
timeval type =
record case boolean of
true : (int : smallint);
false : (chars : packed array [1..30] of char);
end;
nametype = packed array [1..maxname] of char;
var calldesc : integer; {2-word integer}
vcdesc : integer;
dlen : integer;
result : integer;
data : datatype;
name : nametype;
len : smallint;
datastr : string[maxdata];
timeval : timeval type;