Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] Aspettare la risposta di un Server che scrive su un BufferedReader

    Ho la seguente applicazione client che si collega al server di un'azienda e legge da un bufferedReader delle linee di testo in risposta all'input che scrivo io. In parole povere fa questo:


    Socket s = new Socket(host, porta);

    // Creo un oggetto per leggere quello che il server mi invia
    BufferedReader br = new BufferedReader( new InputStreamReader( s.getInputStream() ) );

    // Creo un oggetto per inviare stringhe al server
    PrintStream ps = new PrintStream( s.getOutputStream() );

    // Ora invio la login:
    ps.println("nomeutente");

    // Leggo la risposta dal server (anche se non me ne faccio niente)
    String linea = br.readLine();

    // Ora mando al server in input un certo comando
    ps.println("comando");

    //e leggo la risposta del server
    String linea = br.readLine();
    ......

    (Questo è il codice che mi aveva gentilmente consigliato LeleFT.)

    Ora ho il seguente problema. Il server mi spedisce delle risposte non in maniera immediata ma la mia applicazione deve poter aspettare per leggere le risposte anche 30 secondi. Come posso fare per sincronizzare la mia applicazione per fargli aspettare l'output del server?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Aspettare la risposta di un Server che scrive su un BufferedReader

    Originariamente inviato da NightlyBlue
    Ora ho il seguente problema. Il server mi spedisce delle risposte non in maniera immediata ma la mia applicazione deve poter aspettare per leggere le risposte anche 30 secondi. Come posso fare per sincronizzare la mia applicazione per fargli aspettare l'output del server?
    Ma br.readLine() è già "bloccante", finché la linea di testo non ti arriva, rimane in attesa.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [Java] Aspettare la risposta di un Server che scrive su un BufferedReader

    Originariamente inviato da andbin
    Ma br.readLine() è già "bloccante", finché la linea di testo non ti arriva, rimane in attesa.
    Ottimo, non lo sapevo...

    Si può impostare un timeout? per cui se non arriva risposta in un certo tempo verrebbe lanciata una mia eccezione?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: [Java] Aspettare la risposta di un Server che scrive su un BufferedReader

    Originariamente inviato da NightlyBlue
    Si può impostare un timeout? per cui se non arriva risposta in un certo tempo verrebbe lanciata una mia eccezione?
    Vedi il metodo setSoTimeout di Socket
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Gentilissimo, 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 © 2025 vBulletin Solutions, Inc. All rights reserved.