Posts written by RootkitNeo

  1. .
    In generale le parti che ti creano più difficoltà... magari i socket ad esempio, se non li hai mai utilizzati, ed i thread! Il consiglio che ti do comunque è di non cercare di fare un qualcosa di simile, progettalo proprio tutto da capo, poi dai uno sguardo ai source, al modo in cui lui ha risolto quel problema. Così facendo in qualche modo "ti apre la mente" e riesci magari a progettare meglio alcune parti. ;)
    Poi appunto usalo in caso di problemi con qualcosa che non sai come utilizzate (proprio tecnicamente parlando).

    Figurati!
  2. .
    Potresti mostrare il codice completo?
    In teoria ti dovrebbe cambiare il colore del div, ma dipende come hai strutturato la pagina.

    Ps. se preferisci mandamelo per MP, vedi tu.
  3. .
    Ho guardato un po' i sorgenti che mi hai mandato, ed in effetti c'è qualcosa di simile. Potresti usarlo come spunto se trovi difficoltà ad implementare qualcosa.
  4. .
    Si manda pure, appena posso guardo!
  5. .
    Allora fissiamo alcuni punti. Ciò che devi fare in sintesi è creare un software che permetta di gestire gli esami e permetta al docente di gestire il server utilizzando comandi speciali, e che permetta ai client di connettersi scambiando dati.

    Il server si compone di questi punti:

    • Funzione che permetta di creare un account (matricola, password): questa sarà chiamata solo dal ClientD;

    • Funzione che permetta di creare una directory (remota) con nome matricola (questa funzione potresti richiamarla dalla precedente);

    • Funzione che abilita il server a ricevere connessioni da parte dei client (un valore booleano ad esempio, quindi se usi C 0 oppure 1);

    • Funzione che disabilita il server, in modo tale da non accettare più connessioni ulteriori (puoi usare la funzione di prima passando il parametro corretto, oppure crearne una senza parametri tipo disabilitaServer() che setti una variabile interna al server così che non vengano più accettate connessioni);

    • Restituisce i file contenuti nella directory remota di un particolare utente;

    • Restituisce il contenuto di un file contenuto nella directory remota di quel particolare utente;

    • Upload singolo file;

    • Upload multiplo (qui puoi giocartele queste due...);

    • Elimina file da una directory remota;

    • Chiusura di una connessione con un client (chiamata da ClientS quando l'utente sceglie di sconnettersi, al termine dell'esame). Questa forza l'upload di tutti i file presenti nella directory locale dell'utente (leggere poi ClientS sotto);


    Il Server inoltre gestisce la comunicazione: l'ideale sarebbe avviare un thread che accetta le connessioni, e ad ogni nuova connessione inizi crei un altro thread per ogni singolo client (così le comunicazioni possono avvenire in simultanea, un po' come se fosse una chat). Appena aggiungi il nuovo client, salvi in un file di log (di quel client/utente) data, ora ed IP; alla chiusura della connessione setti anche la durata della connessione (banalmente puoi salvare il tempo in ms alla connessione, e poi farne la differenza con il tempo in ms al momento della disconnessione... dovrebbe essere corretto!).


    Il ClientD sarà relativamente semplice:

    • Passi il nuovo utente (matricola/pwd) alla funzione creata sul server (come detto in precedenza, se includi la creazione della directory in questa funzione, non dovrai richiamarla ora per la creazione della directory);

    • Funzione che legge i comandi da impartire al server (disabilita/abilita server alle connessioni);


    Il ClientS sarà quello usato dall'utente:

    • Si connette al server passando i dati che il docente ha inserito prima. Il server verifica la loro correttezza; se corrispondono, valida la connessione e registra il client connesso (avviando il thread);

    • Il client chiede all'utente di inserire la directory locale (sul proprio pc quindi);

    • Dovresti avere anche qui un thread che viene eseguito ogni tot secondi (o minuti... ma direi secondi sia meglio) e che passi al server i documenti che si trovano nella directory locale;

    • Funzione che permette all'utente di visualizzare i file che si trovano nella directory remota;

    • Visualizza contenuto file specificato;

    • Upload singolo file;

    • Upload file multipli;

    • Chiusura connessione, con conseguenza passaggio di parametro la matricola e tutti i file.



    Credo sia tutto...
    L'ultima cosa: le comunicazioni le dovrai gestire con una certa logica, quindi in pratica creare una sorta di tuo protocollo per la comunicazione tra Client/Server. Avrai messaggi di stato in cui verificherai se una connessione puo' essere stabilita, se l'utente è presente, etc...

    Se hai altre domande fai pure! Per quanto riguarda la connessione tra Socket e suprattutto l'utilizzo di Thread (ma usati in C) non so quanto potrei aiutarti . Se fosse in Java sarebbe diverso.
  6. .
    Certo, chiedi pure!
  7. .
    Nessun problema. ;)
    Ho scaricato il PDF che mi hai allegato, cercherò di risponderti il prima possibile.
    Sembra molto interessante!
  8. .
    Puoi linkare il progetto in questione per favore? O mandamelo in pvt se preferisci. ;)
  9. .
    Che difficoltà incontri esattamente?
    Puoi creare una struttura che rappresenta il singolo account, e poi memorizzarla in un array.
    Avrai il main che richiede i dati da immettere.
  10. .
    Ciao e benvenuta! ;)

    Grazie mille!
  11. .
    Ciao e benvenuto! ;)
  12. .
    Come ho detto poco più sopra, è necessario contattare l'autore. ;)
    Clicca sul profilo, vai in Contatti ed usa il bottone Mail, se non è presente, prova con l'MP.
  13. .
    Figurati!

    Se qualcosa non è chiaro riguardo al codice chiedi pure.
  14. .
    CITAZIONE (int0x80 @ 26/11/2014, 15:24) 
    Stiamo studiando le classi astratte

    Ne avrai ancora per un po' allora...



    CITAZIONE

    Riguardo a Java posso anche essere più preciso, dato che lo utilizzo da molto.
    Il primo PDF no, non tratta proprio Java SE. Il secondo ed il terzo ci stanno, sembrano ben fatti anche. Fai solo attenzione perchè non c'è solo il fondamentale visto così...

    Avevo scritto un esempio, te lo metto come allegato zip.
  15. .
    Cosa state studiando riguardo la OOP?

    Riguardo i Socket devi sicuramente conoscere prima altri aspetti fondamentali, sia nel caso di Java che di C#. Il principale sono sicuramente i thread, senza di questo non potresti gestire l'invio e la ricezione di messaggi su canali separati; e poi ogni client deve poter inviare o ricevere anche se un altro lo sta già facendo.
    Su MSDN trovi un po' di esempi: http://msdn.microsoft.com/it-it/library/w8...=vs.110%29.aspx

    Solitamente non è complicato, specie in Java/C#. Si crea un Socket Server e ci si mette in ascolto su una porta. Il client crea il suo socket e si connette al server a quella determinata porta. Da qui avviene la connessione e si inizia lo scambio dati utilizzando gli stream.
5866 replies since 5/1/2009
.