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
Get step-by-step solutions from verified subject matter experts
