Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148

    [java] client/server

    Ho un server multithread che rimane in attesa di connessione da parte di più client.
    come faccio per permettere la connessione solo ad un certo numero di client ( ad esempio solo 5 connessioni alla volta)?

    so che dovrei fare una cosa del tipo:
    ServerSocket serverSocket = new ServerSocket(port,5);

    ma il mio server continua ad accettare connessioni anche da più server... non so... sicuramente dovrei metter qualche controllo, ma non so come e cosa è meglio fare....
    forse anche nel client dovrei mettere qualche controllo o viene bloccato automaticamente?

    Vorrei sapere se qlc sa dove potrei prendere qualche esempio di questo tipo.... Grazie!

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    crei una variabile statica e fai una ciclo che nel predicato di controllo guarda se questo contatore è a 5 o no.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    dici di fare un controllo nel server del tipo
    if(count<5)
    {
    clientSocket = serverSocket.accept();
    count ++;
    }
    else System.ou.println("connessione non accettata");

    se ho capito bene quello che vorresti dire mi chiedo che valore ha
    il costruttore:
    "ServerSocket(int port, int backlog)"
    dove backlog mi indica appunto il numero massimo di connessioni che possono stare in coda...

    non dovrebbe essere lui a gestire questa problematica?

    potrei forse fare funzionare il tutto mettendo qualche controllo qua e là, ma pensavo dovesse essere una "cosa automatica"... :master:

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,306
    Credo che il Backlog non sia il massimo numero di connessioni, ma il massimo numero di richieste di connessioni contemporanee.
    Vale a dire che non vi possono essere più di n richieste contemporanee di connessioni, ma non che non vi possano essere più di n connessioni attive, arrivate tutte in tempi diversi...


    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

  5. #5
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da netarrow
    crei una variabile statica e fai una ciclo che nel predicato di controllo guarda se questo contatore è a 5 o no.

    Io credevo intendesse un'altra cosa.
    In una classe, un membro static, ha sempre lo stesso valore. Prendila come una variabile in comune.
    Dichiarando quindi una cosa del tipo

    codice:
    static int Connessioni
    , puoi avere un costante controllo di tutte le istanze della tua classe che hai in corso, e se queste superano 5, impedire nuove connessioni. Almeno cosi ho capito.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    "Credo che il Backlog non sia il massimo numero di connessioni, ma il massimo numero di richieste di connessioni contemporanee.
    Vale a dire che non vi possono essere più di n richieste contemporanee di connessioni, ma non che non vi possano essere più di n connessioni attive, arrivate tutte in tempi diversi... "

    ok siamo daccordo è così... ma se lancio in un ciclo 30 client non dovrebbe accettarli tutti o sbaglio? o visto che il server accetta la prima connessione e si mette subito in attesa di un'altra, i client non verranno mai messi in coda?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    "In una classe, un membro static, ha sempre lo stesso valore. Prendila come una variabile in comune. "
    in comune tra client e server?

  8. #8
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Originariamente inviato da naide
    "In una classe, un membro static, ha sempre lo stesso valore. Prendila come una variabile in comune. "
    in comune tra client e server?
    Mmm...no.
    Ma scusa che interessa al client? Questo deve solo richiedere connessione al server. Sarà quest'ultimo poi a valutare la situazione e vedere se accettare o no la connessione...
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    148
    quindi devo mettere un controllo prima di accettare la connessione del client, no?
    poi meglio se la variabile sia static....

  10. #10
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Bhe si.
    Ma 5 sono le connessioni simultanee oppure 5 in tutto?
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

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.