Question: #include #include #include #include static void messageprog_1(); static char *printmessage_1(); static struct timeval TIMEOUT = { 25, 0 }; main() { SVCXPRT *transp; (void)pmap_unset(MESSAGEPROG, MESSAGEVERS);

#include

#include

#include

#include

static void messageprog_1();

static char *printmessage_1();

static struct timeval TIMEOUT = { 25, 0 };

main()

{

SVCXPRT *transp;

(void)pmap_unset(MESSAGEPROG,

MESSAGEVERS);

transp =

svcudp_create(RPC_ANYSOCK); if

(transp == (SVCXPRT *)NULL)

{

ARMIET/IT/ DEGREE/ VI SEM / DS/ OF

(void)fprintf(stderr, "CANNOT CREATE UDP

SERVICE. "); exit(16);

}

if (!svc_register(transp, MESSAGEPROG, MESSAGEVERS, messageprog_1, IPPROTO_UDP))

{

(void)fprintf(stderr,

"UNABLE TO REGISTER (MESSAGEPROG, MESSAGEVERS, UDP). ");

exit(16);

}

transp = svctcp_create(RPC_ANYSOCK, 0,

0); if (transp == (SVCXPRT *)NULL)

{

(void)fprintf(stderr, "CANNOT CREATE TCP

SERVICE. "); exit(16);

}

if (!svc_register(transp, MESSAGEPROG, MESSAGEVERS, messageprog_1, IPPROTO_TCP))

{

(void)fprintf(stderr,

"UNABLE TO REGISTER (MESSAGEPROG, MESSAGEVERS, TCP). ");

exit(16);

}

svc_run();

(void)fprintf(stderr, "SVC_RUN RETURNED ");

exit(16);

return(0);

}

static void messageprog_1(rqstp, transp)

struct svc_req *rqstp;

SVCXPRT *transp;

{

union

{

char *printmessage_1_arg;

}

argument; char

*result;

bool_t (*xdr_argument)();

bool_t (*xdr_result)(); char

*(*local)();

switch (rqstp->rq_proc)

{

case NULLPROC:

(void)svc_sendreply(transp, xdr_void, (char *)NULL);

return;

case PRINTMESSAGE:

xdr_argument = xdr_wrapstring;

xdr_result = xdr_int;

local = (char *(*)()) printmessage_1;

break;

ARMIET/IT/ DEGREE/ VI SEM / DS/ OF

default:

svcerr_noproc(transp);

return;

}

bzero((char *)&argument, sizeof(argument));

if (!svc_getargs(transp, xdr_argument, &argument))

{

svcerr_decode(transp);

return;

}

result = (*local)(&argument, rqstp); if

(result != (char *)NULL &&

!svc_sendreply(transp, xdr_result, result))

{

svcerr_systemerr(transp);

}

if (!svc_freeargs(transp, xdr_argument, &argument))

{

(void)fprintf(stderr, "UNABLE TO FREE

ARGUMENTS "); exit(16);

}

return;

}

char *printmessage_1(msg) char

**msg;

{

static char result;

fprintf(stderr, "%s ", *msg);

result = 1;

return(&result);

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Accounting Questions!