Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Server e lista clients
giovedì 31 maggio 2007 - 08.26
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
JohnAsh
Profilo
| Junior Member
50
messaggi | Data Invio:
gio 31 mag 2007 - 08:26
Ciao a tutti
sto facendo un'applicazione server e, prendendo l'esempio di server con l'uso di thread su msdn ed adattandolo al VC++ sono riuscito a farlo compilare e funzionare correttamente.
Il problema è che ora dovrei mantenere un elenco dei clients connessi, il codice che ho preso utilizza una classe (StateObject) dove all'interno ci sono tutte le proprietà tipo la socket, il buffer per la ricezione .. E viene creato un thread per ogni connessione che arriva. Siccome il server deve essere una sorta di chat server, ho bisogno che se un utente invia "MSG utente2 Ciao" il messaggio venga recapitato a utente2. E per fare questo ho bisogno di controllare che esista effettivamente utente2 sul server e poi prendere la socket di utente2 per mandargli il messaggio. Come posso dunque mantenere un elenco dei clients connessi? Avevo pensato ad un array di oggetti StateObject, ma non riesco a venirne a capo perchè aggiungendo l'item StateObject ad un ArrayList al momento della connessione del client, poi quando cerco di modificare qualche proprietà all'interno della classe StateObject, non funziona.
Attendo fiducioso una vostra risposta perchè non riesco proprio a capire come risolvere il problema..
Grazie mille!
Saluti
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 31 mag 2007 - 08:47
> Avevo pensato ad un array di oggetti StateObject, ma non riesco a venirne
>a capo perchè aggiungendo l'item StateObject ad un ArrayList
>al momento della connessione del client, poi quando cerco di
>modificare qualche proprietà all'interno della classe StateObject,
>non funziona.
>
>Attendo fiducioso una vostra risposta perchè non riesco proprio
>a capire come risolvere il problema..
>Grazie mille!
>
>Saluti
Usi il Framework 1, 2 o 3?
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
JohnAsh
Profilo
| Junior Member
50
messaggi | Data Invio:
gio 31 mag 2007 - 08:48
il 2 .. avevo dimenticato di indicarlo :-) Grazie per la tempestiva risposta!
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 31 mag 2007 - 08:52
Non vorreiche ci fosse qualche problema di casting perchè non usi le liste con i genrics?
List<StateObject> ? o meglio un dictionary<string, StateIbject>.
Se hai dubbi su cosa sono questi oggetti o su come funzionano chiedi pure.
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
JohnAsh
Profilo
| Junior Member
50
messaggi | Data Invio:
gio 31 mag 2007 - 10:49
Mi sono documentato un pò su google e msdn .. non ho mai avuto a che fare con le interfacce .. Però da quel che ho capito bisogna creare una classe che faccia un override dei metodi e proprietà dell'interfaccia .. Ho provato a prendere del codice da MSDN e ad adattarlo ma in fase di compilazione continua a dire che non ho fornito le implementazioni per GetEnumerator(), IsReadOnly ecc (tutto insomma) anche se poi nel codice ho definito le proprietà e i metodi che mi richiede..
Tra l'altro, ho notato la classe DictionaryBase .. forse è già una classe che implementa l'interfaccia IDictionary? Posso semplicemente utilizzare questa dato che tutto quello che mi serve è semplicemente memorizzare le coppie chiave/valore?
Saluti!
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 31 mag 2007 - 11:06
>Mi sono documentato un pò su google e msdn .. non ho mai avuto
>a che fare con le interfacce .. Però da quel che ho capito bisogna
>creare una classe che faccia un override dei metodi e proprietà
>dell'interfaccia .. Ho provato a prendere del codice da MSDN
>e ad adattarlo ma in fase di compilazione continua a dire che
>non ho fornito le implementazioni per GetEnumerator(), IsReadOnly
>ecc (tutto insomma) anche se poi nel codice ho definito le proprietà
>e i metodi che mi richiede..
>Tra l'altro, ho notato la classe DictionaryBase .. forse è già
>una classe che implementa l'interfaccia IDictionary? Posso semplicemente
>utilizzare questa dato che tutto quello che mi serve è semplicemente
>memorizzare le coppie chiave/valore?
>
>Saluti!
Calma, calma.. non ci sono interfaccie da gestire devi usare le classi messe a disposizione da system.collection.generics
Qui c'è un esempio per l'uso dei list (il corrispondente generics dell'arraylist)
http://msdn2.microsoft.com/it-it/library/6sh2ey19
(VS.80).aspx
e qui per i dictionary (coppie chiave-valore):
http://msdn2.microsoft.com/it-it/library/xfhwa508
(VS.80).aspx
dai un occhio agli esempi e riprova
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
JohnAsh
Profilo
| Junior Member
50
messaggi | Data Invio:
gio 31 mag 2007 - 13:14
Grazie mille! Ho modificato il codice implementando il tutto con la classe dictionary e funziona alla perfezione..
Saluti!
Wamba
Profilo
| Expert
722
messaggi | Data Invio:
gio 31 mag 2007 - 13:53
>Grazie mille! Ho modificato il codice implementando il tutto
>con la classe dictionary e funziona alla perfezione..
>
>Saluti!
Mi fa piacere, ciao!
-----------------------------------------------------------
Solo chi ha il Caos dentro può generare una stella danzante
Wamba
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !