Ovako nekako:
Koristimo SUNs workstations za ove projekte (samo da napomenem).
Dobijemo 3 fajla, primes.x; primes_client.c; primes_server.c (oni su dole na kraju)
Kazu nam da prvo uradimo: rpcgen primes.x, to kad odradi onda dobijemo nove fajlove pored prva 3 fajla: primes.h; primes_clnt.c; primes_svc.c; primes_xdr.c (njih nisam dodao, ali ako treba recite)
Onda nam kaze da "compile" primes_client.c i primes_server.c koristeci ove dve komande:
gcc -o client primes_client.c primes_clnt.c primes_xdr.c -lnsl
i
gcc -o server primes_server.c primes_svc.c primes_xdr.c -lnsl
Onda kaze da otvorimo dva CMD-a jedan za server i jedan za klijent, server pokrenemo sa ./server
a na klijent strani uradimo ovo ./client localhost 1 99
i onda nam to IZBACI "PRIME" BROJEVE OD 1 DO 99 (ne rugam se, al ako neko ne zna prime number je onaj koji je deljiv samo sa 1 i sa samim sobom, znaci 1..3..5..7...11, itd itd itd)
Znaci klijent trazi od servera primes numbers from 1 to 99 i onda se dobije lista na klijentovoj strani.
E sad oni oce od mene da ja PROMENIM MALO primes.x "so it takes int pos; kao treci argument" (prva dva su int min; int max;), i da taj POS vraca samo jedan broj a ne kao na pocetku ceo "array".
Isto naravno oce da promenim primes_server.c i primes_client.c tako da kad ukucam naprimer:
./client localhost 1 99 4
ono da mi pokaze 4-ti prime number a to je broj 7, znaci da mi vrati jedan broj a ne celu listu.
A ako bi stavio naprimer
./client 1 20 10
znaci minimum=1.. maximum=20, a ja trazim 10-ti prime number, kojeg nema izmedju 1 i 20 da mi vrati 0 kao rezultat.
Znaci oce da izbaci se "array" kao rezultat, i da rezultat bude samo jedna cifra.
Ako mozes neko bilo kako da mi pomogne bio bi jako zahvalan
Thanx.
Nastavnik nam je nesto napomenio da moramo na SERVER strani da umesto array stavimo kao neki "counter" koji se povecava svaki puta kada FOR LOOP nadje prime number dok chekira brojeve od minimum do maximuma, i kada taj "counter" bude bio jednak sa "requested position" da samo jednostavno return that number.
PRIMES.X
/* Max size of array of primes we can return */
const MAXPRIMES = 1024;
/* Argument: a min-max range */
struct prime_request {
int min;
int max;
};
/* Return value: a variable length array */
struct prime_result {
int array<MAXPRIMES>;
};
/* Define program */
program PRIME_PROG {
version PRIME_VERS {
prime_result FIND_PRIMES(prime_request) = 2; /* proc num */
} = 1; /* vers num */
} = 0x2a3b4c5d; /* prog num */
[Ovu poruku je menjao filmil dana 27.11.2004. u 02:25 GMT+1]