Elosztott rendszerek labor — RPC

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

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

  1. include <string.h>
  2. 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
    Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
    @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
    Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
    @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
    Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
    @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
      Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
      @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
      Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
      @sch.bme.hu címre a kérésedet)

-t es

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
Hiba a bélyegkép létrehozásakor: Nem lehet a bélyegképet a célhelyre menteni
@sch.bme.hu címre a kérésedet)

-t felulirni a letoltottel

    • =make -f Makefile.msg=

-- Peti - 2006.04.07.