|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2008
Città: Brindisi
Messaggi: 3359
|
[C] cosa fare ?
raga ho da poco ininiziato a usare il c con dev c++ e ho fatto quiz con domande e risposte (sia se le dai sbagliate o giuste) e ho fatte diverse calcolatrici.
ora chiedo si può fare qualcos'altro di piu carino in c? (ma fattibile ![]()
__________________
CPU:q6600 @ 3.0ghz ![]() case :apevia x-cruiser neroALI ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Una semplice interazione client-server, magari il classico "time server" (o anche "echo server") he gestisce la richiesta del client e gli ritorna l'ora e la data, quindi il client lo stampa a terminale.
Per gli inizi puoi realizzare un server iterativo, poi se vuoi complicarti un po' la vita e imparare a gestire più processi vai col multitasking/multithreading/multiplexing. In questo modo impari a fare un semplice parser per gestire le richieste del client, impari le basi dei socket e della programmazione di rete (che è tutt'altra cosa dalla programmazione su un singolo sistema). Se poi vai con la gestione di più processi o threads impari anche questo lato (importante) della programmazione. Insomma, gli spunti per "perderci tempo" imparando molto non mancano. Ciao!
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
__________________
Khelidan |
|
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Quote:
![]() Comunque io ho proposto in base al titolo ![]() ![]() ![]() Comunque, se posso permettermi, se non l'hai mai fatto -e hai tempo da perdere, se conosci già 'ste cose- prova. Sicuramente piacerà anche a te ![]() Ps. scherzi a parte il fatto che tu in un linguaggio "moderno" oggi ci metta pochi minuti a progettare un webserver è proprio grazie a chi a suo tempo "ti" ha scritto i metodi che automaticamente fanno quello che in C dovresti fare da zero. Ovviamente te lo sai già, non ho nulla da insegnarti, ci mancherebbe ![]() PPS. la maggior parte del post è ironica - eccezione per il fatto che mi è stato molto utile (a capire il linguaggio e per la netprogramming), per il primo P.S., per il fatto che odio l'umorismo di Beej e questo PPS. Ho capito (o almeno credo lol)quello che volevi dire, e certo, ad oggi pensare di farle ancora così queste cose, per chi ci lavora in mezzo può causare non pochi traumi... Cordiali saluti.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov Ultima modifica di Y3PP4 : 06-09-2009 alle 23:31. |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
Quote:
![]() Comunque anche con un linguaggio stile python o java hai un bel po di lavoro da fare,cioè io non userei il C per imparare quegli argomenti da te citati,ma qui la richiesta era al contrario,degli esercizi per imparare il linguaggio e quindi è più che valida la tua risposta!
__________________
Khelidan |
|
![]() |
![]() |
![]() |
#6 | |||
Senior Member
Iscritto dal: Aug 2008
Città: Brindisi
Messaggi: 3359
|
Quote:
![]() ![]() Quote:
Quote:
![]() ma questa cosa dei server mi sta intrigando ![]()
__________________
CPU:q6600 @ 3.0ghz ![]() case :apevia x-cruiser neroALI ![]() |
|||
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Mar 2008
Città: Palermo
Messaggi: 98
|
Un consiglio? Se vuoi imparare davvero bene a programmare in C:
- Acquista un libro cartaceo ==> http://www.ibs.it/code/9788850326334...mpleto-di.html - Leggi qualche ebook in rete ==> http://blacklight.gotdns.org/guidac.pdf http://edu.os3.it/html/manual/imparare_c.pdf Inoltre ti consiglio di programmare in C su Linux o Mac ![]() |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Aug 2008
Città: Brindisi
Messaggi: 3359
|
Quote:
__________________
CPU:q6600 @ 3.0ghz ![]() case :apevia x-cruiser neroALI ![]() |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Mar 2008
Città: Palermo
Messaggi: 98
|
Perchè C nasce su sistemi Unix.
Inoltre considera che quasi tutte le librerie nascono su Unix (socket, pcap per elecarne alcune) e successivamente viene effettuato il porting su piattaforma Windows (winsocket, winpcap). |
![]() |
![]() |
![]() |
#10 | ||||
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Quote:
![]() Quote:
![]() ...meglio prima (di cosa lo scegli te). Quote:
IMHO, un linguaggio è come il vino o il formaggio, se è buono (valido) ed invecchiato (maturo) è meglio. Non bisogna confondere il fatto che sia vecchio con l'idea di "obsoleto" o non aggiornato, basta seguire la storyline dei vari standard. E' ancora un linguaggio vivissimo -e lo dimostra la portata del suo utilizzo-. Quote:
Mi spiego in dettaglio, un programma che (banalmente parlando) apre una socket lo associa ad una porta e si mette in "ascolto" di eventuali richieste. In caso di un server iterativo avendo un solo processo ogni richiesta "intasa" il servizio, ovvero il server si occupa di gestire la richiesta del client e quindi non può rimanere in ascolto. La cosa è alquanto scomoda e quindi si ricorre alla creazione di più processi o thread per fare in modo che il processo (o thread) padre ad ogni richiesta crei un processo (o thread) dedicato che si occupi di gestire la richiesta del client in modo che il padre possa tornare in ascolto sulla porta per nuove richieste (server concorrente). Non farti ingannare dalla mera complessità di questo discorso: una semplice lettura di pochi documenti in merito per capire il funzionamento client-server e il tuo problema sarà solo "come realizzarlo" e "con quali strumenti". Un client invece crea il socket, lo associa ad una porta e si connette a un indirizzo ip e alla porta designata. E semplicemente esegue le richieste e prende eventuali risposte. Come comunicano? Tramite flusso di dati tramite le socket. Quindi il server deve "capire" cosa dice il client e lo fà con un parser che analizza la richiesta. Nel caso specifico il client effettua una richiesta (in qualsiasi forma, banalmente potresti non volerla analizzare dato che ti aspetti solo un client tuo, ma ti consiglio un semplicissimo parser - anche in seguito -) e il server ritorna una stringa con l'ora attuale. Il client la riceve e stampa a video la stringa avuta. Semplice ed efficace. Il mio è un esempio. Se fai questo impari anche a recuperare l'ora attuale, oltre a tutto il resto, ma potresti anche solo ritornare una stringa tua. Per maggiori info cerca pure su google qualche semplice server... di solito l'echo-time server è un must, quasi come l'hello world ![]() Ciao! PS. per informazioni dettagliate sulla net programming leggiti qualche libro - se ti interessa - o la guida di Beej citata in un post precedente.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov |
||||
![]() |
![]() |
![]() |
#11 | |
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
scusami i due post consecutivi.
Quote:
Se vuoi imparare un C "standard" ovvero codice che gira con poche modifiche (e le poche sono quasi sempre cambi di libreria specifica) rispetta bene le regole ANSI C. Con gcc potresti diventare pedante ![]() Inversamente potremmo dire che lo Unix che oggi tutti ricordiamo è nato grazie a C. Poichè permette di portare il kernel su altre architetture dando inizio alla divulgazione del sistema operativo. Comunque quoto, in un ambiente unix si sente lo stretto legame col C, sicuramente più che con Windows, ma non è detto che non si possa imparare anche su questo.
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov Ultima modifica di Y3PP4 : 07-09-2009 alle 20:28. |
|
![]() |
![]() |
![]() |
#12 | |||
Senior Member
Iscritto dal: Aug 2008
Città: Brindisi
Messaggi: 3359
|
Quote:
Quote:
un pò come creare il wikipedia offline avendo i database e poi creare un server per averlo sul broswer ecc sono sicuro che nn avete capito niente di uqello che ho detto ma l'ho letto su win magazine solo che li usavano l'HTML Quote:
magari se mi scrivi la parte iniziale ![]()
__________________
CPU:q6600 @ 3.0ghz ![]() case :apevia x-cruiser neroALI ![]() |
|||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:56.