Pages: [1] 2   Go Down
Print
Author Topic: compito di laboratorio  (Read 4089 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Nova
Forumista
***
Offline Offline

Gender: Male
Posts: 567


-.-"


WWW
« on: 22-02-2010, 10:58:39 »

Ragazzi io mi starei preparando per il secondo appello di laboratorio. Vorrei sapere che cosa viene chiesto nei compiti di laboratorio in modo da esercitarmi come si deve.

Grazie
Logged

Ubuntu user:
#29872
Liuba
Matricola
*
Offline Offline

Gender: Female
Posts: 82


« Reply #1 on: 25-02-2010, 13:53:04 »

...mi accodo alla richiesta  grazie!
Logged

"Stay Hungry. Stay Foolish."
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #2 on: 25-02-2010, 16:50:26 »

il compito del primo appello era suddiviso in 2 parti (da fare entrambe in 1 ora e 15) di cui la prima parte chiedeva di implementare una funzione hash remota usando rmi o rpc, la seconda parte chiedeva di collegarsi ad un server http, scaricare un file, leggerne la 12-esima riga, estrarre il numero contenuto in questa riga, invocare la funzione hash della prima parte, passandogli la riga e sommare (o moltiplicare) il numero ottenuto dalla funzione hash al numero salvato in precedenza e darlo in output... questo e' a grandi linee il compito dato quindi bisogna studiare praticamente tutto ^^
Logged
Liuba
Matricola
*
Offline Offline

Gender: Female
Posts: 82


« Reply #3 on: 25-02-2010, 17:24:32 »

  grazie shiny!
Logged

"Stay Hungry. Stay Foolish."
Nova
Forumista
***
Offline Offline

Gender: Male
Posts: 567


-.-"


WWW
« Reply #4 on: 25-02-2010, 21:41:06 »

perfetto grazie mille! 

Adesso avrei due domande:

La rpc la hai implementata in java o in C? (nel caso del C posteresti il codice?)

Purtroppo le rpc al momento mi terrorizzano, non ho ancora ben capito come implementarle e dato che ho studiato tutto in C vorrei farle in C. Qualche aiuto?

Grazie mille
Logged

Ubuntu user:
#29872
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #5 on: 26-02-2010, 00:30:51 »

io personalmente ho fatto tutto in C visto che il java lo considero troppo verboso... appena ho un po' ti tempo posto il codice di esempio del client e del server... adesso ho troppo sonno per farlo  pray ciao ciao
Logged
Nova
Forumista
***
Offline Offline

Gender: Male
Posts: 567


-.-"


WWW
« Reply #6 on: 26-02-2010, 10:28:02 »

Grazie mille!!! E l'RPC come l'hai fatta? Hai scritto prima il file .x e poi rpcgen -a?

Porca miseria non riesco a fare funzionare l'rpc Sad

Ho scritto un server che definisce una rpc ed un client che non riesce ad usarla. Mi fareste vedere un esempio?
« Last Edit: 26-02-2010, 12:47:16 by Nova » Logged

Ubuntu user:
#29872
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #7 on: 27-02-2010, 13:04:02 »

come promesso eccovi il codice del file .x

Code:
program HASHFUNC {
version HASHFUNC_V {
int hash(string) = 0;
} = 0;
} = 0x01;

quello del client
Code:
#include "hashFunc.h"


void hashfunc_0(char *host, char *string) {
CLIENT *clnt;
int  *result;

clnt = clnt_create (host, HASHFUNC, HASHFUNC_V, "udp");
if (clnt == NULL) {
clnt_pcreateerror (host);
exit (1);
}

result = hash_0(&string, clnt);
if (result == (int *) NULL) {
clnt_perror (clnt, "call failed");
}
printf("Il codice hash e' %d", *result);

clnt_destroy (clnt);
}


int main (int argc, char *argv[]) {
char *host, *string;

if (argc < 3) {
printf ("usage: %s server_host string\n", argv[0]);
exit (1);
}

host = argv[1];
string = argv[2];
hashfunc_0 (host, string);
exit (0);
}
e quello del server
Code:
#include <string.h>
#include "hashFunc.h"

int* hash_0_svc(char **argp, struct svc_req *rqstp) {
static int  result;
int somma, i;

for(i=0, somma=0; i<strlen(*argp); i++)
somma += *(*argp+1);

result = somma % 26;
return &result;
}

a questo link potete scaricare l'esempio gia' compilato e funzionante...
se non funziona magari dovete installare portmap (da repository per chi usa ubuntu).

Buono studio a tutti .
« Last Edit: 27-02-2010, 13:06:26 by shiny » Logged
Nova
Forumista
***
Offline Offline

Gender: Male
Posts: 567


-.-"


WWW
« Reply #8 on: 28-02-2010, 16:28:18 »

Nel file .x non dovresti mettere

int func(par) = 0;

La fuinzione 0 è riservata e non dovrebbe essere ridefinita.
Grazie mille per il codice Wink
Logged

Ubuntu user:
#29872
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #9 on: 01-03-2010, 11:18:05 »

io ti posso dire che a me funziona benissimo anche se metto 0... cmq se e' riservata metti 1 ^^
Logged
Nova
Forumista
***
Offline Offline

Gender: Male
Posts: 567


-.-"


WWW
« Reply #10 on: 01-03-2010, 18:59:01 »

si, funziona, ma sarebbe riservata, tutto qua :p
Logged

Ubuntu user:
#29872
alex180788
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 422


« Reply #11 on: 24-09-2010, 22:02:22 »


il compito del primo appello era suddiviso in 2 parti (da fare entrambe in 1 ora e 15) di cui la prima parte chiedeva di implementare una funzione hash remota usando rmi o rpc, la seconda parte chiedeva di...
... collegarsi ad un server http, scaricare un file, leggerne la 12-esima riga, estrarre il numero contenuto in questa riga, invocare la funzione hash della prima parte, passandogli la riga e sommare (o moltiplicare) il numero ottenuto dalla funzione hash al numero salvato in precedenza e darlo in output...

ma questa parte (che sarebbe praticamente tutto l'esercizio) dove è implementata???
Logged

Codice etico e di pratica professionale dello sviluppo software:
..
..
7. Colleghi. Gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.
...
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #12 on: 26-09-2010, 00:27:53 »

ma questa parte (che sarebbe praticamente tutto l'esercizio) dove è implementata???

perche' non la scrivi te e non la posti? Io personalmente non l'ho fatta in quanto come puoi vedere dal post sotto citato non mi era stato chiesto. inoltre non credo sia la parte + difficile quella mancante perche' in lab ci avro' messo 10 mins a farla... si tratta giusto di aprire una socket e scaricarti un file. 

Grazie mille!!! E l'RPC come l'hai fatta? Hai scritto prima il file .x e poi rpcgen -a?

Porca miseria non riesco a fare funzionare l'rpc Sad

Ho scritto un server che definisce una rpc ed un client che non riesce ad usarla. Mi fareste vedere un esempio?


« Last Edit: 26-09-2010, 00:33:58 by shiny » Logged
alex180788
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 422


« Reply #13 on: 27-09-2010, 08:57:10 »


si scusami non avevo letto bene il post 

ti volevo chiedere come si fa questa parte?? .... cioè se ho un file, individuare le righe non credo sia una cosa complicata anche perchè probabilmente ci saranno delle funzioni già pronte per questo in alternativa basterebbe contare i caratteri '\n'... almeno io lo farei cosi ma se sto dicendo qualche boiata correggimi subito per favore

ma quello che non riesco a capire è come scaricare il file (sia lato client che server)... nella chiamata remota dichiarata nel file .x dovrei mettere come tipo di valore restituito FILE * ??  ma nel server come faccio ad inviare un file??.... se fosse locale il server potrebbe semplicemente restituire il puntatore al file ma il server è remoto ed il file va scaricato quindi dal server dovrei ottenere una copia del file da mettere nel client??? non riesco a capire come si fa questa parte potresti spiegarmelo? o almeno segnalarmi qualche esempio perchè in quelli del prof non ce ne sono



« Last Edit: 27-09-2010, 09:22:01 by alex180788 » Logged

Codice etico e di pratica professionale dello sviluppo software:
..
..
7. Colleghi. Gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.
...
shiny
Forumista
***
Offline Offline

Posts: 810



WWW
« Reply #14 on: 27-09-2010, 18:23:57 »


si scusami non avevo letto bene il post 

ti volevo chiedere come si fa questa parte?? .... cioè se ho un file, individuare le righe non credo sia una cosa complicata anche perchè probabilmente ci saranno delle funzioni già pronte per questo in alternativa basterebbe contare i caratteri '\n'... almeno io lo farei cosi ma se sto dicendo qualche boiata correggimi subito per favore

ma quello che non riesco a capire è come scaricare il file (sia lato client che server)... nella chiamata remota dichiarata nel file .x dovrei mettere come tipo di valore restituito FILE * ??  ma nel server come faccio ad inviare un file??.... se fosse locale il server potrebbe semplicemente restituire il puntatore al file ma il server è remoto ed il file va scaricato quindi dal server dovrei ottenere una copia del file da mettere nel client??? non riesco a capire come si fa questa parte potresti spiegarmelo? o almeno segnalarmi qualche esempio perchè in quelli del prof non ce ne sono

Vorrei puntualizzare delle cose:
  • In questo compito il metodo remoto faceva la semplice computazione che puoi vedere sopra... non doveva scaricare niente.
  • Il file punto .x non si scrive in linguaggio C quindi la struttura FILE non esiste... se non ricordo male il prof ha spiegato che si devono serializzare le strutture e farne il marshalling (non ricordo se si scrive cosi' ^^). To consiglio di dare un occhiata alla documentazione ufficiale
  • Quando dicevo di scaricare un file intendevo aprire uno stream col server che restituisce dei byte...

Fatte queste premesse lo stream di byte proveniente dalla connessione col server lo puoi memorizzare in una variabile o in un file... una volta chiusa la connessione puoi usare le funzioni sulle stringhe o sui files per trovare la riga che ti serve... credo sia una cosa abbastanza banale visti i molteplici esempi che il prof mette a disposizione sul suo sito 
Logged
Pages: [1] 2   Go Up
Print
Jump to: