Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch12 / test_rpc / test_cls
.C#include "RPC.h"
#include "test.h"
int main(int argc, char* argv[])
{
if (argc < 2) {
cerr << "usage: " << argv[0] << " <server-host> [<nettype>]\n";
return 1;
}
char* nettype = (argc > 2) ? argv[2] : "netpath";
while (1) { /* client */
unsigned progid, progno, verno, procno;
/* get desire RPC program no, vers no, and proc. no */
do {
cout << "Enter prog#, ver#, proc#: " << flush;
cin >> progno >> verno >> procno;
if (cin.good()) break;
if (cin.eof()) return 0;
} while (1);
/* translate user program no to internal number */
progid = (progno==1) ? PROG1NUM : PROG2NUM;
/* create a client handle to the requested RPC server */
RPC_cls *clsp = new RPC_cls ( argv[1], progid, verno, nettype);
if (!clsp->good()) {
cerr << "create client handle(s) failed\n";
return 2;
}
/* call the user-requested RPC function */
if (clsp->call( procno, (xdrproc_t)xdr_void, 0, (xdrproc_t)xdr_void, 0 )
!= RPC_SUCCESS)
cerr << "client call RPC function fails\n";
delete clsp;
}
return 0;
}