|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: May 2002
Messaggi: 5
|
Come posso risolvere questo problema in linux?
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. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2001
Città: Roma
Messaggi: 16132
|
lo risolvi postando in un'altra sezione...
![]() |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: May 2002
Messaggi: 5
|
Grazie.Pero vedo che nessuno mi aiuta
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2001
Città: Roma
Messaggi: 493
|
Postalo in "Programmazione",li magari sanno aiutarti...
![]()
__________________
Listen the noise of deep sea --Powered by Debian Sid/unstable on 2.6.17.11-- |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:31.