Oppure

Loading
23/10/13 11:46
cyclope05
Ciao a tutti,
stò realizzando una piccola chat.
Il server è multiutente ed ho utilizzato i timer perchè i thread ancora non riesco ad usarli è da pochissimo che programmo in net, nel server ho aggiunto una listview nella quale espongo alcuni dati del client che si connette come indirizzo ip e nome utente.
vorrei fare in modo che cliccando su una singola riga si apra una chat singola per quel solo utente e così avevo pensato ad una tabpage nella quale nella prima ho inserito una richtextbox che conterrà la chat sotto un textbox per scrivere e un button che invia il messaggio appena scritto.
Ad oggi ottengo questo risultato....
Quando un client si connette mi compare correttamente nella lista .... se i client mi scrivono .. tutto compare nella richtextbox del tabepage1 e se io rispondo tutti ricevono la mia risposta ma i client tra loro sono correttamente esclusi, nel senso che leggono solo le risposte del server e non si leggono tra loro...
Questo è quello che vorrei fare ossia chattare in modo privato con ogni singolo client... quindi mi chiedevo ... c'è un modo per duplicare tutta la tabpage1 compreso i codici del button che invia le risposte?
Come posso fare per rendere la chat lato server privata?
Spero di essermi spiegato.... e vi ringrazio per l'aiuto che potrete darmi, ho dato una bella occhiata in giro ma giuro non ci stò capendo + nulla.... quasi quasi rimpiango il vb6 :(
grazie a tutti ancora per la pazienza
aaa
23/10/13 12:38
Thejuster
uasi quasi rimpiango il vb6


No, per carità!
Hai fatto la scelta migliore a passare al net.

Per il resto dovresti spiegarci in che modo permetti le query private.

In MMORpgmaker, nel mio server, utilizzavo una sorta di schema ben preciso per indentificare ip, posizione, messaggio ed utente.

semplicemente in questo modo

il client invia un messaggio al server:

Struttura:
[ TIPO | AUTORE | DESTINAZIONE | MESSAGGIO ]

( privmsg|Thejuster|cyclope|Ciao come va? )

il tutto si distingue dal tipo.

Può essere un messaggio privato ( privmsg )

quanto un messaggio pubblico:

( msg|Thejuster|canale_pierotofy|Giorno a Tutti! )

fatto questo puoi semplicemente splittare la stringa eliminando il saparatore |

Messaggio(0) ' tipo
Messaggio(1) 'nick
Messaggio(2) 'destinazione
Messaggio(3) 'messaggio

dopo puoi farne quello che vuoi
mettere i dati in un tab, in una textbox o altro.

posso consigliarti di dare un occhiata a questa mia vecchia versione

pierotofy.it/pages/projects/…

contiene un server multi thread e soket multipli divisi ognuno per fatti suoi.
e osservare la gestione dei messaggi e del loro comportamento.

mire.forumfree.it/ - Mire Engine
C# UI Designer
23/10/13 15:37
cyclope05
grazie 1000
si io faccio in questo modo, il client quando si collega mi invia una stringa contenente tutti i dati di cui ho bisogno compreso il suo IP.
e ok su quello che mi hai consigliato di fare perchè tramite l'ip so sempre quale client mi risponde e quindi sparo la sua risposta nella tab che ha lo stesso ip come text
quello che non ho capito come fare è la risposta... nel senso che quando poi io rispondo dal server la mia risposta deve arrivare solo a quel client e non a tutti...

PS per ovviare a equivoci, nel mio caso il server è il pc centrale che riceve le connessioni di tutti i client (utenti)


mi vado subito a guardare il tuo esempio speriamo che con quello risolvo :D grazie


ah ok... ho riletto attentamente quello che mi avevi scritto ed ho individuato come risolvere anche l'invio :D grazie grz per la super dritta
Ultima modifica effettuata da cyclope05 23/10/13 15:40
aaa