Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ RPC tutorial? [closed]

I want to learn programming C++ (native) on Windows platform for RPC communication. I want to learn both server and client side. I also want to learn some advanced topics, like performance and security.

Any good recommended materials to read?

(BTW: I Googled a few, but all of them either too brief or COM related, I want to learn pure RPC programming without COM. I am using VSTS 2008 with C++.)

like image 219
George2 Avatar asked Oct 18 '09 14:10

George2


3 Answers

I would start with the Platform SDK samples on RPC.

  • ASYNCRPC illustrates the structure of an RPC application that uses asynchronous remote procedure calls. It also demonstrates various methods of notification of the call's completion.
  • CLUUID demonstrates use of the client-object UUID to enable a client to select from multiple implementations of a remote procedure.
  • DATA directory contains four programs:
    • DUNION illustrates discriminated (nonencapsulated) unions;
    • INOUT demonstrates [in], [out] parameters;
    • REPAS demonstrates the represent_as attribute;
    • XMIT demonstrates the transmit_as attribute.
  • DYNEPT demonstrates a client application managing its connection to the server through dynamic endpoints.
  • FILEREP directory contains four samples illustrating how developers can write a simple file replication service, a multi-user file replication service, a service supporting security features, and a service using RPC asynchronous pipes.
  • HANDLES directory contains three programs, AUTO, CXHNDL, USRDEF, which demonstrate auto_handle, [context_handle], and generic (user-defined) handles, respectively.
  • HELLO is a client/server implementation of "Hello, world."
  • PICKLE directory contains two programs:
    • PICKLP demonstrates data procedure serialization;
    • PICKLT demonstrates data type serialization; both programs use the [encode] and [decode] attributes.
  • PIPES demonstrates the use of the pipe-type constructor.
  • RPCSVC demonstrates the implementation of a service with RPC.
  • STROUT demonstrates how to allocate memory at a server for a two-dimensional object (an array of pointers) and pass it back to the client as an [out]-only parameter. The client then frees the memory. This technique allows the stub to call the server without knowing in advance how much data will be returned.
like image 85
Shay Erlichmen Avatar answered Nov 15 '22 12:11

Shay Erlichmen


Try this:

Overview

Technical Reference - also describes what it is & how it works

like image 26
slashmais Avatar answered Nov 15 '22 10:11

slashmais


why do you want to learn "raw" RPC? there are many good higher level RPC implementations:

  1. CORBA implementations
  2. google's protocol buffers
  3. Thrift
like image 4
geva30 Avatar answered Nov 15 '22 12:11

geva30