Visualizzazione dei risultati da 1 a 5 su 5

Discussione: ServerSocket.accept()

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    ServerSocket.accept()

    diciamo che ho un metodo

    public Socket esegui ()

    che fa solo questa cosa:

    return new ServerSocket(6789).accept();

    diciamo che e' inglobato in una classe

    public class Server .

    diciamo anche che in un ipotetico main venga lanciato il metodo esegui(), che pone il server in attesa di connessioni.

    Dato che il metodo accept() e' bloccante nel thread che lo esegue, e dato che il metodo stop() e' deprecato, e il metodo destroy() non e' implementato, come si puo implementare un ipotetico metodo

    public void Shutdwon()

    che forzi istantaneamente il ServerSocket in ascolto a cessare l'ascolto, e chiudersi senza generare errori runtime o eccezioni?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    Non credo che sia possibile realizzare una cosa del genere priva di eccezioni: semplicemente si termina il thread (lo si pone = null) e si intercetta l'eccezione IOException che viene generata dalla chiusura della ServerSocket e, semplicemente, una volta generata non si fa nulla.



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    purtroppo non va nemmeno cosi

    pongo il thread a null ma questo, per dirla breve...non mi caga

    continua ad accettare connessioni come se niente fosse...

  4. #4
    E' sufficiente sospendere il thread senza usare il suspend() che è stato deprecato dopo java 1.1

    nel costruttore metti la variabile suspendFlag a false.
    quando avvii il thread con metodo run(), lo metti in attesa col
    wait() finchè non interverrà un tuo comando a settare suspendFlag a true.
    Non mi ricordo ma credo che la classe che implementa runnable deve essere sincronizzata, altrimenti non va bene.

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    mah

    sconsolato mi sono giusto preso la briga di chiudere tutti gli stream, i socket, e poi un bel System.exit...

    quanto e' sporca una cosa del genere?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.