I'm having difficulties writing the rpc function. Specifically, I don't know how to pack a function name and input argument into a message body, send the message, set and unpack reply, and return result and error code. I know how to create the socket, request aconnection from the server etc. , but I'm totally stuck here.
It's a relatively simple rpc package consisting of user-stub and server-stub.

Recommended Answers

All 3 Replies

XML is one known way to do this.

I would also say XML.

Really? I did not know. The links on that website don't work, though. Ok, let me explain it.

I have a main function and a test function.

#include <errno.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>

extern int errno;

#define  MAXLEN 512

//
// MAIN PROGRAM
//
main(int argc,char *argv[]) {
    // You cannot change anything inside this function
    char input[MAXLEN], output[MAXLEN];
    int pid;
    printf("Enter your Zodiacal sign ended by a return: ");
    scanf("%s",input);
    printf ("So your sign is %sn", input);
    rpc("test", input, output);
        printf( "Well, %s n", output);
    // Additional tests
    if (rpc("test","the two Gemini", output) < 0)
          printf("Procedure test not foundn");
        else
           printf( "Besides, %s n", output);
    if (rpc("anotherone","the two Gemini", output) < 0)
       printf("Procedure anotherone not foundn");
        else
           printf( "Besides, %s n", output);
} // main

And the test function:

//  THE REMOTE FUNCTION
//

test (char argument[], char result[]) {
   sprintf (result, "People born in the house of %s are exceptional", argument);
   sleep(3);
} // test

So test function goes into the server. You basically just input any Zodiac sign and it's supposed to print the test function via rpc, I think. So now I have the basics such as created the sockets, connected it etc. , but I don't know how to do the call to the test function. I might have explained it a little weird in the OP.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.