View Full Version : programmazione in C
teo_smile89
12-08-2010, 12:04
Ciao a tutti,
dovrei fare un progetto in C su una qualsiasi applicazione per Linux, ma ho talmente tanta carta bianca che non so veramente cosa fare. Avete qualche suggerimento per un progetto non troppo difficile da implementare?
Grazie per l'attenzione!
calcolo del fattoriale :asd:
lupoxxx87
12-08-2010, 12:42
determinare se un numero è primo xD
wingman87
12-08-2010, 13:15
Una semplice chat
teo_smile89
12-08-2010, 13:27
..non così banali! Mi viene in mente solo una gestione di un'architettura client/server, però questa idea è molto generica e non so come implementarla!
Teo@Unix
12-08-2010, 13:55
http://www.lilik.it/~mirko/gapil/gapilpa2.html#x545-257000II
questa fornisce le basi per utilizzare i socket C sotto Linux.
Su che tipo di applicazzione non so devi vedere tu.
- Un sistema server/client che fornisce l'ora esatta.
- Un server FTP
- Un WEB server
- Un sistema server per l'archiviazione di log
- Un server che esegue port forwarding delle porte TCP.... hai presente le funzioni NAT dei router?
e chi più ne ha ....... :p
import/export.
fai un servizio lato server che rimane in ascolto e inserisce dati in un db "di esempio".
Poi crei una applicazione client che sia in grado di gestire plugin di importazione ed esportazione in maniera indipendente. Ad esempio che sia in grado di caricare dll a runtime per la fase di importazione, di modo che puoi crearti una dll che legge da un file di testo separato da comma, una che legge da un qualsiasi db definendo dei campi, una che legge da un webservice che sta su un certo sito web ecc ecc.... e per la parte di esportazione ne fai una che prende i dati che arrivano dall'importatore e li manda al tuo servizio lato server, una che fa la stessa cosa ma magari prima di inviarli manda anche delle mail oppure aggiorna anche altri db in giro, una che fa la stessa cosa e in più avvisa un servizio web sollevando degli eventi ecc ecc....
Questo è un progetto molto completo perchè crei una applicazione veramente versatile, estendibile, e puoi fornire le reference per creare altri nuovi plugin da parte di terzi..... Molto utile per esempio nei gestionali di una certa dimensione per permettere l'interfacciamento di software di terze parti o connettori verso altri servizi esterni ecc ecc ecc
teo_smile89
12-08-2010, 15:19
Mi piace l'idea di fare un sistema server/client che fornisce l'ora esatta, ma sinceramente non saprei come fare. Poi un'altra domanda: quanto cambia a livello di programmazione fare una rete di comunicazione locale e di comnunicazione web?
per l'origine ora ci sono già dei protoccolli di comunicazione appositi NTP ad esempio quindi non devi fare molto.
Teo@Unix
12-08-2010, 18:32
per l'origine ora ci sono già dei protoccolli di comunicazione appositi NTP ad esempio quindi non devi fare molto.
Stiamo parlando di imparare cosa ci interessa di NTP?
@teo_smile89
se guardi dentro quella guida, Piccardi porta proprio l'esempio di un sistema che fornisce l'ora, anzi anche la data in quel particolare caso.
Non saprei se per i tuoi scopi è una cosa troppo base, stà di fatto che insegna ad usare i socket. Segui quell'esempio.(http://www.lilik.it/~mirko/gapil/gapilse52.html#x624-30900015.3)
Ti consiglio di leggere tutto il capitolo dove si parla di programmazzione di rete.
Poi un'altra domanda: quanto cambia a livello di programmazione fare una rete di comunicazione locale e di comnunicazione web?
Qui cosa intendi? A livello di programmazzione un'applicazzione andrà sia in rete locale che via internet senza problemi. Perchè si affida agli standard delle reti. Certo se poi andiamo a parlare dei protocolli, quelli cambiano. Ma non credo sia il tuo pensiero ora.
Se intendi come funziona un server web, bè è molto semplice, invia un pò alla volta parte della pagina che il client richiede formattata in HTML (per un server base). Non so se ho capito bene ciò che chiedevi. :D
EDIT:
Una semplice chat
se la fai bene non è poi così banale.
Stiamo parlando di imparare cosa ci interessa di NTP?
Se stiamo parlando di fare cose a casaccio ok....
ma se parliamo appunto di imparare a fare una applicazione server in grado di fornire l'ora perchè non farla che rispetti lo standard di un protoccollo universalmente riconosciuto????
Non solo ti permette di imparare il linguaggio, ma anche il protocollo. Inoltre è utilizzabile davvero con tutte le piattaforme e non rimane una cosa fine a se stessa. Diventa un server ora a tutti gli effetti utilizzabile.
Non sto mica dicendo di prendere un server ora già fatto, sto parlando di fare un nuovo server ora rispettando gli standard di un protocollo......
Non capisco proprio il tuo intervento francamente.... fa così schifo seguire gli standard?????
Teo@Unix
12-08-2010, 21:02
Se stiamo parlando di fare cose a casaccio ok....
ma se parliamo appunto di imparare a fare una applicazione server in grado di fornire l'ora perchè non farla che rispetti lo standard di un protoccollo universalmente riconosciuto????
Non solo ti permette di imparare il linguaggio, ma anche il protocollo. Inoltre è utilizzabile davvero con tutte le piattaforme e non rimane una cosa fine a se stessa. Diventa un server ora a tutti gli effetti utilizzabile.
Non sto mica dicendo di prendere un server ora già fatto, sto parlando di fare un nuovo server ora rispettando gli standard di un protocollo......
Non capisco proprio il tuo intervento francamente.... fa così schifo seguire gli standard?????
Io non faccio cosa a casaccio, e non volevo certo essere scortese.
Se vedi nella guida il client riceve l'ora dal server e la stampa semplicemente. Riceve di fatto una stringa. Non usa NTP.
Poi si può scrivere anche per intero una versione di demone ntpd, non è un problema, io consigliavo solo di andare per gradi.
Anche io non volevo essere scortese,
volevo solo dire che se si vuole fare un server time allora sarebbe bello se fosse davvero in grado di fornire l'ora... per fare questo bisogna implementare l'NTP. Anche a livello didattico trovo che sia interessante, si ha modo, oltre che di imparare ovviamente a scrivere codice, anche di capire come funziona un protocollo che di fatto è standard.
Certo, si può anche scrivere un demone che restituisce solo una stringa con l'ora ma non so quanto poi sia sfruttabile e riutilizzabile magari...
Sono d'accordo anche io che bisogna procedere per gradi, specialmente se non ha mai affrontato la programmazione di rete.
Noi siamo partiti con il server time (non NTP) per poi andare a fare un client P2P con protocolli fatti da noi.
IMHO è molto più educativo perché ti poni dei problemi e cerchi di trovare le TUE soluzioni.
Poi è chiaro che serve anche conoscere come gli altri prima di te hanno affrontato quel problema, anche per capire dove sono le eventuali limitazioni del tuo programma.
Beh se l'obbiettivo finale non è un server time ma qualcosa di diverso è ovvio che non è necessario attenersi agli standard.
Personalmente cerco sempre di attenermi agli standard esistenti per fare in modo che chi poi userà un mio prodotto o chi dovrà aggiungere funzionalità tramite plugin esterni o interfacce di terze parti sappia esattamente come si comporta il mio software. Inoltre credimi che se vuoi ottenere la piena aderenza ad uno specifico protocollo o standard impari veramente mooooolto....
Non fosse altro perchè ti OBBLIGA a rispondere a determinate chiamate in un DETERMINATO modo e non ti permette, in caso di difficoltà, di inventarti scorciatoie o di aggirare l'ostacolo implementando soluzioni fantasiose ma che creano qualcosa di diverso e non riutilizzabile....
Poi come sempre tutti i punti di vista sono buoni. C'è del vero in quello che diciamo tutti quanti. Probabilmente dipende anche dal livello finale che si vuole ottenere.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.