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
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

Frankid
Utente medio


Regione: Puglia
Prov.: Bari
Città: Barletta


Inserito il - 03/02/2009 : 12:51:34  Mostra Profilo  Visita l'Homepage di Frankid  Clicca per vedere l'indirizzo MSN di Frankid Invia a Frankid un Messaggio Privato  Rispondi Quotando
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

Frankid

Mk178
Moderatore ITPS

mk


Regione: Puglia
Prov.: Bari


Inserito il - 03/02/2009 : 17:24:46  Mostra Profilo  Visita l'Homepage di Mk178 Invia a Mk178 un Messaggio Privato  Rispondi Quotando
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.

PER ESSERE SEMPRE AGGIORNATI
Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI
(NON postate in questo topic le vostre richieste)
Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari

EX-Rappresentante LINK - udu
: C. Facoltà di Scienze MM.FF.NN. & C. Corso di Laurea di Informatica TPS
Torna all'inizio della Pagina

Frankid
Utente medio


Regione: Puglia
Prov.: Bari
Città: Barletta


Inserito il - 04/02/2009 : 09:06:25  Mostra Profilo  Visita l'Homepage di Frankid  Clicca per vedere l'indirizzo MSN di Frankid Invia a Frankid un Messaggio Privato  Rispondi Quotando
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


Frankid
Torna all'inizio della Pagina

Mk178
Moderatore ITPS

mk


Regione: Puglia
Prov.: Bari


Inserito il - 04/02/2009 : 11:38:20  Mostra Profilo  Visita l'Homepage di Mk178 Invia a Mk178 un Messaggio Privato  Rispondi Quotando
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

PER ESSERE SEMPRE AGGIORNATI
Sottoscriviti alla discussione ITPS/Generale/INFORMAZIONI
(NON postate in questo topic le vostre richieste)
Oppure Iscriviti al gruppo su Facebook Informatica T.P.S. Bari

EX-Rappresentante LINK - udu
: C. Facoltà di Scienze MM.FF.NN. & C. Corso di Laurea di Informatica TPS
Torna all'inizio della Pagina

Frankid
Utente medio


Regione: Puglia
Prov.: Bari
Città: Barletta


Inserito il - 04/02/2009 : 11:55:30  Mostra Profilo  Visita l'Homepage di Frankid  Clicca per vedere l'indirizzo MSN di Frankid Invia a Frankid un Messaggio Privato  Rispondi Quotando
ok grazie ci provo

Frankid
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,22 secondi.

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