Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch12 / msg2 / msg_svc2
.C/* server program: low-level RPC APIs */
/* usage: msg_svc2 <transport> */
#include <fstream.h>
#include <stdlib.h>
#include "msg2.h"
#include "RPC.h"
RPC_svc *svcp;
int printmsg( SVCXPRT* xtrp )
{
int res = 0;
char *msg = 0;
if (svcp->getargs( xtrp, (xdrproc_t)xdr_string, (caddr_t)&msg)!=RPC_SUCCESS)
return -1;
ofstream ofs("/dev/console");
if (ofs)
ofs << "server: '" << msg << "'\n";
else res = -1;
if (svcp->reply(xtrp, (xdrproc_t)xdr_int, (caddr_t)&res)!=RPC_SUCCESS)
res = -2;
return res;
}
int main(int argc, char* argv[])
{
RPC_svc *svcp = new RPC_svc( MSGPROG, MSGVER, argc==2 ? argv[1] : "netpath");
if (svcp && svcp->run_func( PRINTMSG, printmsg )) return 2;
return 0; /* shouldn't get here */
}