Mini chat en vb.net

Fermé
stephan - 12 nov. 2010 à 19:46
 stephan - 13 nov. 2010 à 14:25
Bonjour a tous,


ça fait déjà un petit temps que je cherche comment je peux créer un petit chat en vb.net.
j'ai fait plein de recherche mais je n'ai pas vraiment trouver ce qu'il me fallait.
j'ai trouver ceci : https://dotnet.developpez.com/sources/vbnet/?page=internet#MiniChat
mais je vous avoue que je comprend a peine la moitie...
si quelqu'un pouvait me trouver un lien d'un bon tuto ou bien me donner des explication sur les Socket etc je suis preneur!
merci d'avance
et si quelqu'un a des question n'hésiter pas!!
A voir également:

3 réponses

j'ai fait un minichat de se style là en C# j'ai commencer pas un petit tutoriel en anglais.

grosso modo le principe c'est de faire du threading afin d'établir une liaison entre le serveur (a savoir toi) et le client.
la connection s'établira par le biais d'un flux... en C# le flux s'appelle NetStream.

pour établir ta connection tu aura besoin d'écouter un port par le biais d'un TcpListener afin de récupérer le flux est établir la connection avec ton client.

si je retrouve le lien je mettrais a jour le post et je te l'enverrai.
ce que tu tente d'entreprendre est assez fastidieux essaye de coder pas à pas afin d'enrichir ton minichat

bon courage
0
merci
c'est vrai que ça m'aiderai si tu pouvais me passe le lien
et si tu a des idée pour des autre programme utilisant la programmation réseaux ou ce type de connections je suis preneur ça pourrai faire un bonne exercice!!
merci de ton aide
0
bonjours stephan,

je te donnerai le code source lundi car je ne l'ai pas sur moi a la maison.

mais si tu veut te lancer dans cette aventure il faut saisir le principe... je vais essayer d'expliquer.

pour faire un minichat tu a besoin de 2 choses:
- une adresse ip
- un port non utiliser

avec c'est deux choses tu peut établir un mini-serveur qui va te permettre d'écouter les connection entrante sur le port ou tu souhaite établir un dialogue. en c# ce dialogue est assurer par un TcpListener. tu peut voir que le nom de l'objet est assez parlant car le TcpListener écoute le port a l'adresse ip que tu aura choisis.

si une connection est établit (c'est a dire si une personne distante ta appeler sur ton adresse ip au port selectionner) le TcpListener te donner le flux correspondant. ce flux en c# s'apeller Netstream par le biais de ce flux tu peut renvoyer tout ce que tu souhaite (chaine de caractère, binaire...)
exemple :

TcpListener serveur = new TcpListener(IPAddress.Parse(addr[i].ToString()), portServeur);
// ici je creer mon mini serveur qui ecoutera mon port portServeur a l'adresse ip IPAddress.Parse(addr[i].ToString())

serveur.Start(); // je demarre mon serveur

TcpClient actuelle = serveur.AcceptTcpClient(); // la j'attend que quelqu'un se connecte a mon port et j'établit la connection

NetworkStream net = actuelle.GetStream(); // je creer un flux entre le client et moi
StreamWriter writer = new StreamWriter(net); // je fabrique un flux pour lui envoyer une chaine de caractére

la on vient de voire la partit serveur maintenant il reste a voire comment ton client peut se connecter a ton serveur.
la j'aurais tendance a dire que c'est moin technique sachant que ton adresse ip et ton port d'ecoute sont des constante de ton programme il n'a juste qu'a faire une instruction vraiment trés bête:

TcpClient client = new TcpClient (tonAdresseIp,TonPort);
tu n'as rien d'autre a faire en creant cette objet le client cherche a établir une connection entre toi et lui de plus il peut lui aussi creer un flux si tu as compris ce que j'ai marquer plus haut en faisant:

NetWorkStream net = client.getStream();

et lui aussi pourra t'envoyer toute sorte de chose

bon c'est bien d'envoyer des chaine de caractére un peu partout sur les ports de connection mais ils faut aussi pouvoir lire c'est chaine...
aller j'explique aussi mais normalement a ce stade tu dois être capable de le faire seul...

compte tenu du faite que tu posséde un flux entre le client est toi tu peut la aussi obtenir non pas un flux d'ecriture mais un flux de lecture en faisant:

StreamReader read = new StreamReader(tonflux NetWorkStream)

et avec l'instruction:
read.readLine();
tu attend que quelqu'un t'envoie une chaine sur ce flux...


Voilà a quoi devrai ressembler la partit technique de ton minichat... comme tu est sur VB est connaisant le lien trés étroit entre C# et VB tu devrais trouver l'equivalent VB de toutes les classes que j'ai utilisée...

n'oublie que les phase d'attente ne peuve pas être gérer par ton main thread tu devra creer des threads dynamiquement a chaque connection. il est bien évident que chaque ouvertur de flux s'accompagne d'une fermeture propre autrement tu risque d'avoir de sérieux probléme de monter dee charge si ça te parle( le flux n'étant pas fermer il reste même a la fermeture du programme).

n'oublie pas d'utiliser des bloc try est catch quand cela est necessaire car tout ce qui est protocol TCP/IP¨répond a des erreurs qu'il faudra que tu gére le plus possible.
en effet un de tes client pourrais trés bien décider de quitter ton chat et... sur ton serveur a toi cela crera une exception qui mettra fin au programme s'il n'est pas gérer.

je parle peut être beaucoup mais ne t'inquiéte pas je ne suis pas un profesionel de la profession et j'ai réussit a faire ce chat... donc j'ai envie de dire que tout est faisable.

code pas a pas n'hésite pas a faire des essai en fenetre console en établissant une connection entre toi et toi pour voir si tout fonctionne.... le principal c'est d'arriver a t'envoyer une chaine de caractère a toi même une fois cela établit enrichit ton programme d'un interface graphique... puis d'un salon privée... et enfin pourquoi pas d'une option de téléchargement.

un dernier conseil avant de te lancer dans cette aventure. mon programme fais plus de 50000 lignes je te rassure j'ai pas coder tout seul j'ai été aider par un collégue qui a fait le design de l'application... c'est peut être l'ocassion pour toi de faire un programme avec un de tes pote...

allez courage je te donne le lien lundi
0
waou geniale merci bcp jvais faire encore quelque recherche concernant ce que tu m'a dirt plus haut merci bcp en tout cas je croit que ca va m'aider pas mal
ps : la raison pour laquelle j'ai mis "mini" chat en titre c'est justement pour pas avoir 50000 ligne mdr
merci pour ton aide a bientot :)
0
up
0