NetIPC 3000/XL Programmer's Reference Manual (5958-8600)

Table Of Contents
136 Chapter4
NetIPC Examples
Example 1
procedure terminate; intrinsic;
{NetIPC intrinsic declarations}
procedure ipccreate; intrinsic;
procedure ipcname; intrinsic;
procedure iprecvcn; intrinsic;
procedure ipcrecv; intrinsic;
procedure ipcsend; intrinsic;
procedure ipcshutdown; intrinsic;
procedure ipcerrmsg; intrinsic;
procedure ipccontrol; intrinsic;
{error handling procedure}
procedure leave(result : integer);
var msg: string[80];
i, len, newresult: integer;
begin
ipcerrmsg(result, msg, len, newresult);
if newresult = 0 then
begin setstrlen(msg, len);
writeln(msg); {print error message}
end
else
writeln('IpcErrMsg result is ', newresult:1);
terminate;
end;
{ The following procedure receives one message which was sent via an ipcsend
call. It assumes that the length (number of bytes) of the message was sent as
the first two bytes of data and that the length value does not include those
two bytes. }
procedure receive ( connection : integer;
var rbfr : datatype;
var rlen : smallint;
var errorcode : integer ) ;
const head_len = 2;
type length_buffer_type = packed array[1..2] of char;
header_len_type = record
case integer of
0: ( word: smallint );
1: ( byte: length_buffer_type);
end;
var i, j :integer;
dlen :integer;
header_len :header_len_type;
tempbfr :datatype;
begin { procedure receive }
i:=0;
errorcode := 0;
while (i <> head_len) and (errorcode = 0) do { get length of message }