Non-blocking RPC

Non-blocking RPC

Post by ON » Mon, 23 Jun 1997 04:00:00


I'm looking for info and examples of writing non-blocking RPC programs.

Specifically I'm trying to write a non-blocking NIS client.


Please reply by e-mail too.


Non-blocking RPC

Post by NobleNet In » Wed, 25 Jun 1997 04:00:00

>I'm looking for info and examples of writing non-blocking RPC programs.

>Specifically I'm trying to write a non-blocking NIS client.

Our product, NobleNet RPC 3.0, provides capabilities for several
different types of RPCs, including Nowait and Async, and we also offer a
thread-safe version of ONC/RPC for several different flavors of UNIX.

Please contact NobleNet for ONC/RPC tools and solutions for UNIX,
Windows (3.1/95/NT), Macintosh, VMS, OS/2, NetWare, VxWorks, etc.

        NobleNet, Inc.
        337 Turnpike Road
        Southboro, MA  01772
        Voice +1 508 460 8222
        Fax +1 508 460 3456



1. Non-Blocking mode setting in RPC

Did anyone answer this yet?
I have to do this for a project here, too.  The only way I can think of
is kind of messy:

In the Sun Network Programming manual, it has a section entitled "Select
on the Server Side" - it tells how the _server_ can run asynchonously,
by hand-coding a select() against the rpc-related sockets, then calling
svc_getrequest() when something comes in.  The select() can have a timeoout
associated with it, and that's where you get your asynchronicity.

This doesn't go quite all the way down to sockets, but it go down
further than would be hoped.

If you want the _client_ to run asynchronously, then you can use what
Sun calls "Batching" - The client sends a request to the server, but
the server-side rpc is written so that it returns an ACK immediatly,
then does the processing.  The client recieves the ACK, then does
whatever it wants for a while.  Later, the client sets himself up as
an rpc-server, and the server process calls the client with the
results of his work.  Also messy, but explained in most rpc network
programming guides.

But I don't really like these techniques, because I find them pretty
confusing, and writting code this way gets involved in too many low-
level things - And the point of rpc's is to avoid all this complexity.

Does anyone know of a simpler way so use rpc's asynchronously?

--   Stuart Marquis                --   It's simple.  If I said it,        --

"Their eyes meet and her heart starts flopping around weakly, like a bunny
in a Ziploc bag.  He grins and waves." - Stephenson, Snow Crash

2. Samba > Netbeui

3. Blocking connect() fails, non-blocking succeeds?

4. Linux Tulip drivers

5. Blocking and Non-Blocking socket

6. NIS+ replica to rootmaster

7. [2.2] pipe_write can block even with non-blocking fd

8. How to disable background proceses for certain user?

9. how to get blocking i/o after non-blocking???

10. [2.5] Non-blocking write can block

11. Blocking & Non-Blocking

12. Non-blocking socket reads block! (Bug?)

13. Problem with blocking opens preventing non-blocking opens in AIX 5.2