Questo oggi vedremo come realizzare una semplice chat utilizzando i socket.
L'applicazione in questione è la seguente
L'applicazione Console Application è il server con il log dei messaggi inviati e degli user connessi e disconnessi.
I Vari Client sono le finestre provviste di due textbox (una per il nickname e l'altra per il messaggio) , di una listbox dove si aggiornano i vari client connessi e infine il Button per inviare il messaggio scritto dall'utente.
Iniziamo descrivendo brevemente il concetto di client-server partendo da un immagine :
Nell'immagine si notano i vari pc (denominati client) collegati a sua volta a un server che si occupa di gestire il trasferimento dati in maniera peer-to peer(paritetica), nel nostro caso quel "server" può essere interpretato come un hub dato che invierà i dati a tutti i client connessi.
Creeremo un applicazione server (che gestirà più client) e che generalmente si comporterà come un hub (quindi invierà i dati a tutti) e ovviamente il client.
Iniziamo ad analizzare il server , che è una ConsoleApplication
Passiamo alla classe User.vb
Infine la classe Server.vb
Poll
Mi soffermo solo su Poll , che l'ho adoperata per vedere se l'utente effettivamente è ancora connesso. Questo metodo accetta due parametri il primo sono i Millisecondi d'attesa per verificare e il secondo parametro rappresenta cosa verificare.
Questo metodo determina lo stato del socket
SelectMode.SelectRead :
restituisce :
true se è stato chiamato il metodo Listen e vi è una connessione in sospeso;
-oppure-
true se sono disponibili dati per la lettura
-oppure-
true se la connessione è stata chiusa, ripristinata o terminata.
In caso contrario, restituisce false.
Per altre informazioni visita :
Passiamo al client :
Passiamo alla classe Client
Ed ecco il link per il download :
L'applicazione in questione è la seguente
L'applicazione Console Application è il server con il log dei messaggi inviati e degli user connessi e disconnessi.
I Vari Client sono le finestre provviste di due textbox (una per il nickname e l'altra per il messaggio) , di una listbox dove si aggiornano i vari client connessi e infine il Button per inviare il messaggio scritto dall'utente.
Iniziamo descrivendo brevemente il concetto di client-server partendo da un immagine :
![35ch8qo.jpg](/forum/proxy.php?image=http%3A%2F%2Fi58.tinypic.com%2F35ch8qo.jpg&hash=70aaf788fccdec724ed84693e3020b04)
Nell'immagine si notano i vari pc (denominati client) collegati a sua volta a un server che si occupa di gestire il trasferimento dati in maniera peer-to peer(paritetica), nel nostro caso quel "server" può essere interpretato come un hub dato che invierà i dati a tutti i client connessi.
Creeremo un applicazione server (che gestirà più client) e che generalmente si comporterà come un hub (quindi invierà i dati a tutti) e ovviamente il client.
Iniziamo ad analizzare il server , che è una ConsoleApplication
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Passiamo alla classe User.vb
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Infine la classe Server.vb
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Poll
Mi soffermo solo su Poll , che l'ho adoperata per vedere se l'utente effettivamente è ancora connesso. Questo metodo accetta due parametri il primo sono i Millisecondi d'attesa per verificare e il secondo parametro rappresenta cosa verificare.
Questo metodo determina lo stato del socket
SelectMode.SelectRead :
restituisce :
true se è stato chiamato il metodo Listen e vi è una connessione in sospeso;
-oppure-
true se sono disponibili dati per la lettura
-oppure-
true se la connessione è stata chiusa, ripristinata o terminata.
In caso contrario, restituisce false.
Per altre informazioni visita :
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
Passiamo al client :
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Passiamo alla classe Client
Codice:
Perfavore,
Entra
oppure
Registrati
per vedere i codici!
Ed ecco il link per il download :
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
Ultima modifica: