Application de chat multiClient/serveur avec Winsock VB.Net

Résolu
xmahdix - 8 mars 2013 à 18:57
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 9 mars 2013 à 03:04
Bonjour,
je vais voire comment je peut rendre cette application accepter plusieurs connexions avec Winsock & merci d'avance


Public Class Form1


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Winsock1.LocalPort = 1234
Winsock1.Listen()
End Sub

Private Sub Winsock1_CloseEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles Winsock1.CloseEvent
Winsock1.Close()
End Sub

Private Sub Winsock1_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles Winsock1.ConnectionRequest
Dim i As Integer
i = i + 1

Winsock1.Accept(e.requestID)
End Sub

Private Sub Winsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival
Dim data As String = ""
Winsock1.GetData(data)
msg(data)
End Sub
Private Sub msg(ByVal x As String)
TextBox1.Text = TextBox1.Text + Environment.NewLine + " >> " + x
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error Resume Next
Winsock1.SendData(TextBox2.Text)
TextBox2.Clear()
End Sub

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
8 mars 2013 à 19:56
Bonjour,

En .NET, pas de Winsock, mais System.Net.Sockets.(TcpClient, TcpListener).

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 mars 2013 à 03:04
Fais donc une recherche parmi les codes en .Net avec le mot "socket" : tout est là.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 mars 2013 à 21:45
Salut

Oui, NHenry à raison, bien que le Winsock soit un peu plus pratique, il appartient aux anciens objets VB6.

Pour que ton programme accepte plusieurs connexions, il faut :
- Un socket en Listen
- Une collection de Sockets, donc indexés, pour communiquer
- Lorsque le socket en Listen reçoit une demande de connexion, il faut accepter, mais en utilisant un autre socket (un parmi la collection).
Si c'est le socket en Listen qui accepte, il n'est plus en Listen.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
Merci Pour Les réponses
Si je peut pas faire avec le Winsock,vous pouvez me donner un code complet partie client & serveur (TcpClient, TcpListener) ou juste une petite exemple
Merci
0
Rejoignez-nous