Application de chat multiClient/serveur avec Winsock VB.Net [Résolu]

Signaler
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
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
---
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Fais donc une recherche parmi les codes en .Net avec le mot "socket" : tout est là.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
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)
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