sifreuzmani
11-06-2002, 03:48
Buona sera.Io sono uno straniero e ho bisogno di aiuto per risolvere un problema del laboratorio di Informatica(In linux, il compilatore è gcc) In 4 giorni devo risolvere la domanda(sotto) per superare questo corso.
Perfavore mi potete aiutare?
******************************************
Un programma eseguito da un unico
processo studente STUD.Il processo STUD
utilizza un canale CNL tra se stesso
e un server di verifica VRF.
1)Il processo STUD attende richieste di
collegamento da VRF sulla porta TCP
35522.
2)Una volta effettuata la connessione
e aperto il canale di rete CNL, STUD
entra in un ciclo dove riceve da VRF,
per ogni iterazione:
a)un carattere terminatore CH_TERM.
b)una sequenza di caratteri SEQ di
lunghezza massimo 64 e termina dal
carattere CH_TERM.La ricezione delle
singole sequenze di caratteri puo
essere soggetta a cadute di connessione.
c)Sul canale CNL il processo studente
STUD deve inviare a VRF ogni sequenza
di caratteri SEQ ricevuta, compreso
il carattere terminatore terminatore
specificato CH_TERM.
3)Se durante la ricezione si verifica
una caduta di connessione il processo
studente STUD deve:
a)attendere una nuova connessione dal
server VRF e una volta riaperto il
canale CNL di rete, inviare al server
VRF il carattere 'R' (riprendi a spedire)
b)ricevere i rimanenti caratteri della
sequenza SEQ.
c)riprendere l'esecuzione dal punto 2.c.
4)Il ciclo termina quando la sequenza
ricevuta è "quit" (qui riportata senza
il carattere terminatore CH_TERM).
Anche tale sequenza deve essere rispedita
a VRF.
5)Infine STUD chiude i canali di rete
utilizzati e termina.
Si tenga presente che:
-Il cliente di verifica VRF funziona
sempre correttamente.
-Se il cliente di verifica VRF riceve
dati diversi da quelli attesi, esso
chiude il canale CNL e termina immediatamente.
**********************************************
/*ho scritto "( )" al posto dei "<>" perche non è possibile scrivere questi simboli in questo forum solo per la parte di inclusione delle librerie*/
#include (stdio.h)
#include (sys/types.h)
#include (sys/socket.h)
#include (netinet/in.h)
#include (arpa/inet.h)
void addr_inizialize( struct sockaddr_in * indirizzo, int port, long IPaddr );
{
indirizzo->sin_family = AF_INET;
indirizzo->sin_port = htons( ( u_short ) port );
indirizzo->sin_addr.s_addr = IPaddr;
}
int main(int argc, char** argv)
{
/*Codice Studente*/
/*main() ritorna sempre un intero*/
return 0;
}
Grazie mille.
Perfavore mi potete aiutare?
******************************************
Un programma eseguito da un unico
processo studente STUD.Il processo STUD
utilizza un canale CNL tra se stesso
e un server di verifica VRF.
1)Il processo STUD attende richieste di
collegamento da VRF sulla porta TCP
35522.
2)Una volta effettuata la connessione
e aperto il canale di rete CNL, STUD
entra in un ciclo dove riceve da VRF,
per ogni iterazione:
a)un carattere terminatore CH_TERM.
b)una sequenza di caratteri SEQ di
lunghezza massimo 64 e termina dal
carattere CH_TERM.La ricezione delle
singole sequenze di caratteri puo
essere soggetta a cadute di connessione.
c)Sul canale CNL il processo studente
STUD deve inviare a VRF ogni sequenza
di caratteri SEQ ricevuta, compreso
il carattere terminatore terminatore
specificato CH_TERM.
3)Se durante la ricezione si verifica
una caduta di connessione il processo
studente STUD deve:
a)attendere una nuova connessione dal
server VRF e una volta riaperto il
canale CNL di rete, inviare al server
VRF il carattere 'R' (riprendi a spedire)
b)ricevere i rimanenti caratteri della
sequenza SEQ.
c)riprendere l'esecuzione dal punto 2.c.
4)Il ciclo termina quando la sequenza
ricevuta è "quit" (qui riportata senza
il carattere terminatore CH_TERM).
Anche tale sequenza deve essere rispedita
a VRF.
5)Infine STUD chiude i canali di rete
utilizzati e termina.
Si tenga presente che:
-Il cliente di verifica VRF funziona
sempre correttamente.
-Se il cliente di verifica VRF riceve
dati diversi da quelli attesi, esso
chiude il canale CNL e termina immediatamente.
**********************************************
/*ho scritto "( )" al posto dei "<>" perche non è possibile scrivere questi simboli in questo forum solo per la parte di inclusione delle librerie*/
#include (stdio.h)
#include (sys/types.h)
#include (sys/socket.h)
#include (netinet/in.h)
#include (arpa/inet.h)
void addr_inizialize( struct sockaddr_in * indirizzo, int port, long IPaddr );
{
indirizzo->sin_family = AF_INET;
indirizzo->sin_port = htons( ( u_short ) port );
indirizzo->sin_addr.s_addr = IPaddr;
}
int main(int argc, char** argv)
{
/*Codice Studente*/
/*main() ritorna sempre un intero*/
return 0;
}
Grazie mille.