Programma Server/Client

di il
4 risposte

Programma Server/Client

Salve a tutti...avevo postato qualche tempo fa sul forum per quanto riguardava la disperazione che mi affliggeva in quanto frequentando un corso di programmazione stavo studiando diverse cose insieme ed ero un po confuso...adesso le cose vanno molto meglio e infatti anche se novizio programmatore mi diletto nello sviluppo di applicazioni più o meno complesse....

Credetemi non avrei voluto farlo ma non riesco a trovare una soluzione logica/funzionale al mio problema e quindi vi chiedo aiuto.

Abbiamo sorvolato la questione creare un client server in java a scuola e la mia curiosità mi porta a svilupparne uno...Detto....fatto!!!Non in maniera così immediata ma il Client Server funziona...e comunicano...Adesso è mia intenzione fare in modo che il client legga dei valori da due file e li inserisca dentro un ArrayList di interi, dopo voglio che il client invii una richiesta di somma al server di queste due liste tramite un thread, poi il server fa la somma e invia il risultato al client che provvede a scrivere il risultato sul disco sempre tramite un thread... ho fatto tutto questo...ma senza thread in quanto, sia il client che il server hanno un main e si trovano dentro lo stesso progetto...che a sua volta ha le classi per effettuare la lettura da file la somma dei file letti e una classe con il main che la uso per istanziare i vari oggetti e faccio le varie operazioni...


Non riesco a capire come procedere per andare avanti...qualcuno potrebbe delucidarmi?? grazie tantissimo in anticipo....come faccio funzionare sti thread? la classe che implementa runnable in questo caso non deve essere la classe client? forse ho sbagliato tutto?

4 Risposte

  • Re: Programma Server/Client

    Ciao!
    Quello che vuoi fare, in sostanza, è che un thread sia il client e un altro thread il server?

    Per creare un thread, comunque, hai diversi modi..Uno di questi è creare una classe che implementi l'interfaccia Runnable, implementare all'interno del metodo "public void run()" tutta la logica del thread e poi, per avviarlo, fai così: "new Thread(new MyObject()).start()". Oppure crei direttamente una classe che estende da Thread, e, per avviarla, fai così: "new MyClass().start()".
  • Re: Programma Server/Client

    Diciamo che in sostanza non vorrei che un thread sia il client e un thread sia il server e scusa se mi sono espresso male..


    il mio intento è quello di effettuare la connessione...e questa già funziona....la classe client legge il contenuto di due file che si trovano all'interno della cartella del progetto client e li mette dentro un arraylist...e questo funziona pure...dopo il client deve inviare al server le due array list tramite un thread....

    il server a sua volta effettua la somma delle due liste ottenute e rimanda al client la somma delle due liste.....alla fine il client sempre tramite un altro thread va a scrivere sul disco in un altro file la somma ricevuta dal server; questo è quello che voglio fare....grazie a tutti ancora
  • Re: Programma Server/Client

    Beh diciamo che l'approccio non cambia..Potresti creare una classe (magari interna) che estenda Thread in cui implementi la logica della scrittura su file. Poi quando il client riceve effettivamente la risposta dal server crei un oggetto di questa classe ed esegui su di esso il metodo "start()". Inoltre devi sapere che un thread una volta completato non può più essere riavviato, ma bisogna farne uno nuovo!
  • Re: Programma Server/Client

    Salve a tutti

    Dopo ore passate a programmare e buttare giù righe di codice sono riuscito a fare il tutto!!!

    Adesso mi manca un ultima cosa...cioè quella di gestire i thread...

    Quello che ho fatto fino ad ora che la classe client e quindi dove si trovano i metodi implementa Runnable e quindi la richiesta di somma al server la faccio tramite il metodo run... e nella classe dove ho messo il main del client faccio partire il tutto con il nome dell'oggetto thread .start()

    Il problema e che non riesco a capire come gestire due thread, nel senso che non posso avere due metodi run() e non posso nemmeno mettere tutto dentro il run che già ho.... quindi devo capire come fare di preciso questa cosa...e quindi gestirmi la richiesta di somma con un thread e quella di scrittura su disco con un altro.... Sarei lieto se qualcuno mi facesse anche un piccolissimo esempio in modo che lo capisco bene bene... vi ringrazio tanto...
Devi accedere o registrarti per scrivere nel forum
4 risposte