IPC network question

When a Send is done over the network, does all the data get sent at once or
does it get sent as the receiver reads it?

(i.e.)
/* Is all the data on this node at this point?/
pid = Receive( 0, &msg, sizeof( msg ) )



some_struct some_data;
/
or is the data transfered here? */
Readmsg( pid, sizeof( msg ) - sizeof( char ), &some_data,
izeof( some_struct ) );

My gut tells me it all there when Receive unblocks…

Thanks
Kevin

No, not everything goes across. Behavior is different between QXN4 and
QNX6. Based on the API you are using I assume QNX4. With QNX4 I belive
you are limited to some fixed size like 64K for messages. On QNX6 there
is a msginfo structure that tells you the size sent vs. size received so
you get MsgRead() the rest of the data.

chris


Kevin Stallard <kevin@ffflyingrobots.com> wrote:

When a Send is done over the network, does all the data get sent at once or
does it get sent as the receiver reads it?

(i.e.)
/* Is all the data on this node at this point?/
pid = Receive( 0, &msg, sizeof( msg ) )


.
some_struct some_data;
/
or is the data transfered here? */
Readmsg( pid, sizeof( msg ) - sizeof( char ), &some_data,
izeof( some_struct ) );

My gut tells me it all there when Receive unblocks…

Thanks
Kevin


\

cdm@qnx.com > “The faster I go, the behinder I get.”

Chris McKillop – Lewis Carroll –
Software Engineer, QSSL
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Kevin Stallard <kevin@ffflyingrobots.com> wrote:

When a Send is done over the network, does all the data get sent at once or
does it get sent as the receiver reads it?

(i.e.)
/* Is all the data on this node at this point?/
pid = Receive( 0, &msg, sizeof( msg ) )


.
some_struct some_data;
/
or is the data transfered here? */
Readmsg( pid, sizeof( msg ) - sizeof( char ), &some_data,
izeof( some_struct ) );

My gut tells me it all there when Receive unblocks…

Under QNX4, it is all there when you unblock from Receive. (This is
a thing that has changed under QNX 6.)

It will, of course, be broken up during the network transmission into
a series of packets & then reassembled at the other end.

The maximum size you can transmit accross the network is just under
64K.

-David

QNX Training Services
I do not answer technical questions by email.