|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Feb 2003
Città: Pagani in provincia di Salerno
Messaggi: 9
|
Chat In Vb
Come posso creare una chat in visual basic?? (tipo MSN Messanger??)
Fatemi sapere Grazie
__________________
Sono un piccolo programmatore...chiamatemi se vi serve il mio aiuto!! ;-) |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jan 2000
Città: Provincia di Parma
Messaggi: 724
|
Io sto facendo qualcosa di simile, ma in C#...
Uso i sockets TCP, con un server che ascolta su una data porta e i client che accedono a quella porta. Le comunicazioni avvengono tramite uno stream TCP. In VB6, so che esite il controllo WinSock, ma non lo conosco nel dettaglio.
__________________
My Pc: Case Enermax Chakra - PSU Corsair HX520 - Gigabyte P35-DS3R - Core2 Duo E6550 - 6 Gb RAM Geil PC800 - 2x WD Caviar SE 320Gb (Raid1) - Xfx GeForce 8600Gt - Master Pioneer DVR111D - Samsung SM T220 - S.O. Windows 7 Ultimate x64 SP1 My blog: http://blogs.ugidotnet.org/alby |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Non è cosi semplice da spiegare su di un forum ed in poche righe...
...la cosa principale e se vuoi creare una chat peer-to-peer o server-client cmq se fai un po' di ricercher per la rete trovi esempi molto belli. Questo link ti può dare sicuramente una mano: http://www.visual-basic.it/scarica.asp?ID=631 è un esempio molto bello di come realizzare una chat a più canali (mIRC) ciao ciao |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!!
Einstein una domanda!!
Suppongo che lil tuo client notifichi al server quando si disconnette giusto?? Ora immagina che ciò non avvenga... come può gestire il server la situazione secondo te ??
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Prima di tutto non è mio il prg ma di chi l'ha fatto...e direi che è un ottimo prg per inizire un lavoro di chat
Il server ha un record che tiene tutti quelli connessi...potresti fare che ogni 5 minuti il tuo server faccia una verifica della reale connessione del client...se da errore il client nn è connesso La stessa cosa la fai quando sendi i dati...controlli che il dato spedito verso i vari client arrivi e nn generi un errore sulla chiusura della porta e l'interruzione della comunicazione...altrimenti se il server va in crach non è bello per i client che ci sono attaccati. Prova a fare cosi |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!!
Beh avevo pensato la stessa cosa.. ma il problema è la realizzazione... speravo mi potessi aiutare. VABBE!! ME LA CAVERO' DA SOLO
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
nn è che nn ti voglio aiutare...è solo che non ti posso aiutare su un prg intero e di quella portata
di solito in questo forum si cercano di risolvere i problemi + piccoli o indirizzare la persona a realizzare qlc danadogli degli spunti. mi spiace ma nn avrei il tempo materiale di darti una mano, l'esempio che ti ho dato è completo e funzionante...studiatelo bene e vedrai che quando l'hai finito avrai capito + cose di quelle che ti avrei potuto dire io. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Re: !!
Quote:
Ad esempio puoi fare in modo che ogni pacchetto TCP/IP spedito dal server verso i client contenga anche un byte di controllo...magari il primo... Lo puoi strutturare ad esempio così : bit 0 - il server lo mette a 1 per chiedere al client se è ancora attivo bit 7 - è a 1 se il pacchetto contiene del testo (definizione di testo è un sequenza di caratteri terminata con un ritorno carrello) a 0 altrimenti poi gli altri possono servire per altri scopi.... In ogni messaggio ricevuto o spedito dal server dovrà essere presente il byte di controllo come primo byte... Mettiamo che il server in un certo momento non riceva niente dai client... Ovviamente il server si terrà la lista di tutti gli utenti collegati con l'ora dell'ultimo messaggio che ha ricevuto da loro... Ogni tot secondi (mettiamo 30) il server confronta l'ora del'ultimo messaggio con l'ora attuale e se differiscono per più di un minuto il server invia un pacchetto di dati che non contiene testo a quell'utente, ma con il bit 0 a 1... Quindi in esadecimale il byte da inviare è 0x01... Il client deve rispondere con un pacchetto identico... In ogni caso se il server dovrà inviare un testo ad una lista di utenti e se uno i questi utenti è da più di un minuto che non invia messaggi potrà comunque verificare che questo sia connesso inviando il byte di controllo 0xF1 seguito dal testo terminato con il ritorno carrello...mentre agli altri invierà il byte di controllo 0xF0 seguito dal testo terminato dal ritorno carrello... Ovviamente quando il bit 0 è a 0 non è necessaria risposta da parte del client... In questo modo il server si potrà tenere conto anche del lag dei vari utenti... In ogni caso il protocollo TCP è orientato alla connessione (seppure simulata)...quindi nel caso che un client si disconnetta quando gli viene inviato un messaggio la funzione usate per inviarlo dovrebbe in qualche modo segnalare un errore... |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Nov 2000
Messaggi: 279
|
!!
Grazie Cionci.. ti farò sapere !!
Grazie a tutti!!
__________________
In un arco di tempo abbastanza lungo l'indice di sopravvivenza di ognuno scende a zero |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: May 2002
Città: Trieste
Messaggi: 81
|
CIAUZ A TUTTI
Stò cercando di sviluppare la stessa cosa, la mia idea è quella di salvare un file con tanti record quanti sono gli utenti connessi da qualche parte su internet (DB Access o simili) leggere questo file a intervalli regolari e aggiornale la lista (in alternativa ad ogni connessione/disconnessione di un client vado a leggere il file), l'eseguibile dovrà contenere sia la parte client che server, il primo client che legge il file (quindi il file sarà vuoto) si eleggerà server e smisterà tutte le chiamate della chat, mentre la trasmissione dei dati (la chat deve permettere lo scambio di file tra i vari client) averrà aprendo un socket direttamente verso l'ip della persona che vuole il file, appena il server si sconnette lancia un messaggio che attiva un tempo di latenza (time out) random sui vari client, appena questo time out finisce la prima macchina che legge il file e verifica che non esiste un server si elegge server a sua volta (volendo si può creare una gerarchia di possibili server in base alla posizione nel file). |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:20.



















