Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 ITPS - Secondo Anno
 Reti di calcolatori
 Prob con server multiconnessioni lab n 6

Nota: Devi essere registrato per poter inserire un messaggio.
Per registrarti, clicca qui. La Registrazione è semplice e gratuita!

Larghezza finestra:
Nome Utente:
Password:
Modo:
Formato: GrassettoCorsivoSottolineatoBarrato Aggiungi Spoiler Allinea a  SinistraCentraAllinea a Destra Riga Orizzontale Inserisci linkInserisci EmailInserisci FlashInserisci Immagine Inserisci CodiceInserisci CitazioneInserisci Lista Inserisci Faccine
   
Icona Messaggio:              
             
Messaggio:

  * Il codice HTML è OFF
* Il Codice Forum è ON

Smilies
Approvazione [^] Arrabbiato [:(!] Bacio [:X] Bevuta [:273]
Caldo [8D] Compiaciuto [8)]    
compleanno [:269]
Davvero Felice [:D] Diavoletto [}:)] Disapprovazione [V] Domanda [?]
Felice [:)] Fumata [:29] Goloso [:P] Imbarazzato [:I]
Infelice [:(] Morte improvvisa da [:62]
Morto [xx(] Occhio Nero [B)] Occhiolino [;)] Palla 8 [8]
pc [:205]    
Riproduzione [:76]
Scioccato [:O]      

   Allega file
  Clicca qui per inserire la tua firma nel messaggio.
Clicca qui per sottoscrivere questa Discussione.
    

V I S U A L I Z Z A    D I S C U S S I O N E
Frankid Inserito il - 03/02/2009 : 12:51:34
Salve nell'esercizio di lab n 6 quello della chat multiconnessioni
come posso tener traccia dei vari client che hanno effettuato la connessione?

grazie in anticipo
4   U L T I M E    R I S P O S T E    (in alto le più recenti)
Frankid Inserito il - 04/02/2009 : 11:55:30
ok grazie ci provo
Mk178 Inserito il - 04/02/2009 : 11:38:20
mmm... allora, come "selezioni" il client al quale mandare il messaggio?(presumo con il nome dell'utente associato a quel client)
in tal caso, invece dell Array, puoi usare un Hashtable(è un dizionrio già implementato in Java).

public cass ParteServer {
Hashtable ClienConnessi=new Hashtable<String,Socket>();
...main()...{
//ci sarà la dichiarazione del main o all'interno di una run se il server è un thread
ServerSocket serverS=new ServerSocet(12345);/12345 è la posrta su cui è in ascolto il servizio
Socket S=nul;
while(true){
S=serverS.accept();//attende richieste di connessione sulla porta 12345
ClientManager C=new ClientManager(this,S).start();
ClientConnessi.put(utente,C);
}
public invia_messaggio(String da, String a){
 Socket S_mitt=new Socket(ClientConnessi.get(da).getInetAddress());
 Socket S_dest=new Socket(ClientConnessi.get(a).getInetAddress());
 //chiedi a S_mitt a ki vuole mandare un messaggio
 //leggi il messaggio da S_mitt
 //invii a S_dest
}
}

public class ClientManager extends Thread{
private Socket S;
ParteServer server;
public ClientManager (ParteServer server,Socket S){
this.S=S;
this.server=server;
}
void run(){
//operazioni tra client e server
//se vuoi mandare un messaggio da questa client ad un altro, fai così:
server.invia_messaggio();
}
}


naturalmente lo scritto così, senza neanke provarlo...forse riesci a fare qualkosa di + struttrato
Frankid Inserito il - 04/02/2009 : 09:06:25
ok quindi tengo traccia delle connessioni utilizzando un array .. ma ora come posso dire al server di inviare un messaggio solo a un Client tra quelli che hanno effettuato la connessione?
grazie

Mk178 Inserito il - 03/02/2009 : 17:24:46
nel server potresti implementare un codice di questo tipo:
[...]
//ci sarà la dichiarazione del main o all'interno di una run se il server è un thread
ServerSocket serverS=new ServerSocet(12345);/12345 è la posrta su cui è in ascolto il servizio
Socket S=nul;
while(true){
S=serverS.accept();//attende richieste di connessione sulla porta 12345
ClientManager C=new ClientManager(S).start();
//Ti salvi l'oggetto C in un array
}

public class ClientManager extends Thread{
private Socket S;
public ClientManager (Socket S){
this.S=S;
}
void run(){
//operazioni tra client e server
}
}

In questo modo per ogni richiesta ke riceve il Server(per ogni client ke tenta di stabilire una connessione), verrà creato un thread ke gestirà la conessione.
Inoltre avrai un array, all'interno della classe principale del server ke memorizza tutte le connessioni in corso.

Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,05 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000