Visualizzazione dei risultati da 1 a 7 su 7

Discussione: server BroadCast

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153

    server BroadCast

    Salve a tutti!!!
    Sto realizzando una piccola architettura di un server tcp in java. Il server è multithread, nel senso che ad ogni nuova connessione client assegna un thread separato per gestire la comunicazione con esso, e ne viene conservato in una HashMap un suo riferimento.

    Quello che mi piacerebbe fare è permettere al server di inviare messaggi in bradcast a tutti i client conessi.

    Ci sarebbe la semplice opzione di scorrimento della HashMap in modo sequenziale, ma in realtà mi chiedevo se ci fosse una metodologia più efficiente, che possa magari sfruttare il discorso dei thread?!?!!

    Che ne pensate??

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Non puoi far altro che che scorrere i client che hai nella mappa (e devi ottenere una "vista" di una collection per scorrere).

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Ciao Patrick!!

    con vista intendi oggetti tipo "Iterator", "Set"??

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Si. Parlo di questo http://docs.oracle.com/javase/7/docs...l#keySet%28%29
    Oppure: http://docs.oracle.com/javase/7/docs...Map.Entry.html

    In rete trovi anche esempi sul loro utilizzo. ^^

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Ti ringrazio. conosco già approfonditamente questi strumenti, cercavo solo una piccola conferma!

    Però mi risulta strano, perchè se i client connessi diventano un buon numero, anche intorno al centinaio, l'operazione di scorrimento ed invio, con in mezzo l'invio via socket, è un operazione seconodo me troppo incerta...

    Per questo mi chiedevo se non ci fosse una metodologia più efficace!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    147
    Penso che avete fatto un po' di confusione... Se hai realizzato un server TCP allora si tratta di tutte connessioni unicast e se hai 100 client non puoi che mandare un pacchetto per ogni connessione... Il broadcast concettualmente è una cosa diversa ed in genere funziona così: mandi un unico messaggio UDP (quindi non ricevi 100 ACK) indirizzato ad un certo indirizzo IP (di broadcast per l'appunto) ed è lo switch che lo inoltra a tutti i nodi della rete (solo locale).

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Grazie watermark per questo piccolo ripasso... credo però che sia sfuggito a te il tema della discussione!

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.