Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jeydiz Visualizza il messaggio
    Non riesco a capire come creare una socket con client e server che comunicano e scambiano diversi messaggi.
    Ho provato a svolgere un esercizio e ci ho sbattuto la testa per giorni senza trovare la soluzione.. Qualcuno saprebbe dirmi cosa sbaglio?
    Innanzitutto il server che hai realizzato si definisce "sequenziale" (o detto "iterativo"), perché serve un solo client per volta uno dopo l'altro in sequenza. Non va ovviamente bene se la comunicazione, in generale, deve essere "lunga" e fatta da più client.
    In tal caso servirebbe il multi-threading sul lato server (con tutto quello che comporta).

    Poi la questione del gestire più "messaggi" durante una singola comunicazione ... questa è solo questione del "protocollo" che ti inventi per portare avanti la comunicazione tra i due host. Ora stai facendo un solo fromClient.readLine(). Se vuoi gestirne di più, semplicemente gestisci "in loop" più messaggi finché il client non si sconnette e/o magari esplicitamente invia un comando "particolare" (es. una stringa QUIT).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    11
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Innanzitutto il server che hai realizzato si definisce "sequenziale" (o detto "iterativo"), perché serve un solo client per volta uno dopo l'altro in sequenza. Non va ovviamente bene se la comunicazione, in generale, deve essere "lunga" e fatta da più client.
    In tal caso servirebbe il multi-threading sul lato server (con tutto quello che comporta).

    Poi la questione del gestire più "messaggi" durante una singola comunicazione ... questa è solo questione del "protocollo" che ti inventi per portare avanti la comunicazione tra i due host. Ora stai facendo un solo fromClient.readLine(). Se vuoi gestirne di più, semplicemente gestisci "in loop" più messaggi finché il client non si sconnette e/o magari esplicitamente invia un comando "particolare" (es. una stringa QUIT).
    Ok grazie, per quanto riguarda il primo punto penso che un server sequenziale vada bene per il mio esercizio dato che uso un solo client. E' corretto?

    Per quanto riguarda il secondo immaginavo potesse essere questo il problema ma non capisco dove e come effettuare una nuova readLine().
    Dato che mando tutto in loop con while(true) la stessa fromClient.readLine() non dovrebbe leggere il secondo messaggio al secondo giro del loop?


    [edit] Ho messo un ulteriore while(true) fra "fromClient.readLine()" ed il resto della logica del programma e funziona.
    Grazie mille! Risolto.
    Ultima modifica di jeydiz; 07-10-2015 a 18:03

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jeydiz Visualizza il messaggio
    [edit] Ho messo un ulteriore while(true) fra "fromClient.readLine()" ed il resto della logica del programma e funziona.
    Come prova è ok. Ma in realtà dovresti ciclare finché readLine non restituisce null (=end-of-stream, ovvero fine "fisica" della comunicazione)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    11
    Ho capito, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.