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

Table Of Contents
Chapter 4 137
NetIPC Examples
Example 1
begin
dlen := head_len - i;
ipcrecv( connection, tempbfr, dlen, , , errorcode );
if errorcode = 0 <F100P12M>
then strmove(dlen, tempbfr, 1, header_len.byte, i+1);
i := i + dlen;
end;
if errorcode = 0 then
begin
rlen := header_len.word;
i := 0;
while (i <> rlen) and (errorcode = 0) do { get the message }
begin
dlen := header_len.word - i;
ipcrecv ( connection, tempbfr, dlen, , ,errorcode );
if errorcode = 0
then strmove(dlen, tempbfr, 1, rbfr, i+1);
i := i + dlen;
end;
end
else
rlen := 0;
end;
{ procedure receive }
{main of NetIPC Program 2}
begin
{create a call socket and name it}
ipccreate(3, 4, , , calldesc, result);
if result <> 0 then
leave(result); {failed}
name := 'RALPH';
ipcname(calldesc, name, 5, result );
if result <> 0 then
leave(result); {failed}
{wait for a connection request}
timeval.int:=0;
ipccontrol(calldesc, 3, timeval.chars, 2, , , result);
ipcrecvcn(calldesc, vcdesc, , , result);
if result <> 0 then
leave(result); {failed}
ipcshutdown(calldesc);
{wait for a message on the connection and print message received}
repeat
begin
receive (vcdesc, data, len, result);
if result <> 0 then leave(result);
setstrlen(datastr, len);