Elosztott rendszerek labor — RPC
Ez az oldal a korábbi SCH wikiről lett áthozva.
Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!
Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.
<style> code.pre { white-space:pre; display:block; } </style>
msg.x
struct msgstr {
string from<16>;
string to<16>;
string msg<256>;
};
program MSGPROG {
version MSGVERS {
int SEND(msgstr) = 1;
string GET(string) = 2;
int DEL(string) = 3;
} = 1;
} = 0x20000099;
Forditas: =rpcgen -a msg.x=
=msg.x= vegen
\n
-nek kell lennie, kulonben nem fordul. Ujraforditas eseten torolni kell a keletkezett file-okat.
msg_server.c
- include <string.h>
- include <stdio.h>
char *user[] = {"aaa", "bbb", "ccc"};
char msgs[] = {"", "", ""};
int send_1_svc(msgstr *argp, struct svc_req *rqstp)
{
static int result;
char str[256];
result = -1;
int i;
for (i=0; i<3; i++)
if (strcmp(argp->to, user[i])==0) {
sprintf(str, "From: %s\n%s\n", argp->from, argp->msg);
msgs[i] = strdup(str);
puts(msgs[i]);
result = 0;
}
return &result;
}
msg_client.c
result_1 = send_1(&send_1_arg, clnt);
if (result_1 == (int*) NULL) {
clnt_perror(clnt, "call failed");
}
helyett
switch (*argv[2]) {
case 's':
send_1_arg.from = argv[3];
send_1_arg.to = argv[4];
send_1_arg.msg = argv[5];
result_1 = send_1(&send_1_arg, clnt);
if (result_1 == (int*) NULL) {
clnt_perror(clnt, "call failed");
}
printf("%d\n", *result_1);
break;
}
result_2 = ...
-tol kezdodo 8 sort kikommentezni.
msgprog_1()
-nek at kell adni az =argv= parametert is.
Onallo feladat - labirintus
- interfesz: Ezen a helyen volt linkelve a(z) maze.x nevű fájl ("maze.x" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborRPC oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
- ways.n: -1 ha eszakra fal van, 0 ha szabad, 1 ha cel
- ways.s
- ways.e
- ways.w
- ways.control: -1 ha falra probaltunk lepni, 0 ha szabad mezore leptunk, 1 ha a celra leptunk
- void init(char*): pozicio beallitas, usernev atkuldes
- ways north(): eszakra lepunk
- ways south()
- ways east()
- ways west()
- szerver: Ezen a helyen volt linkelve a(z) maze_server.c nevű fájl ("maze_server.c" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborRPC oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
(Pernek Akos)
- kliens: Ezen a helyen volt linkelve a(z) maze_client.c nevű fájl ("maze_client.c" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborRPC oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
(Pallos Peter)
- forditas:
- Ezen a helyen volt linkelve a(z) maze.x nevű fájl ("maze.x" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborRPC oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
-et letolteni
- =rpcgen -a maze.x=
- Ezen a helyen volt linkelve a(z) maze_server.c nevű fájl ("maze_server.c" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoszak/ElosztottLaborRPC oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki sch.bme.hu címre a kérésedet)
-t es
-t felulirni a letoltottel
- =make -f Makefile.msg=
-- Peti - 2006.04.07.