Winsock Multi Connexion

Résolu
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 - 4 août 2006 à 01:01
medelidrissi Messages postés 180 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 26 novembre 2007 - 4 août 2006 à 13:38
Bonjour , je suis encore avec mon winsock

Alors voila j'en suis rendu ou que le server accepte un nombre limité de connexion.

Mais le probleme c'est que seul le dernier connecté peut envoyer des données.
Les autres connecté Erreur.... quand t'il éssey d'envoyer une donnée

Voici la source du server :




Private Sub Form_Load()
Winsock1.LocalPort = 52
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock2.Close
Winsock2.Accept requestID
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "Win 1 server erreur"
End Sub

Private Sub Winsock2_DataArrival(ByVal bytesTotal As Long)
Dim recu As String
Winsock2.GetData recu
Text1.Text = Text1.Text & vbCrLf & recu

End Sub

Private Sub Winsock2_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "Win 2 server erreur"
End Sub

Voici la source du clien : 

Private Sub Command1_Click()
Winsock1.SendData (Text1.Text)
End Sub

Private Sub Form_Load()
Winsock1.Connect "127.0.0.1", 52
End Sub

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
MsgBox "erreur"
End Sub

4 réponses

medelidrissi Messages postés 180 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 26 novembre 2007 2
4 août 2006 à 13:38
Salut.

J'ai pris le soin de te créer un simple exemple :
http://elidrissi.free.fr/public/Guillamue06.zip

Pour se connecter, tu peux utiliser la routine normale.

Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
3
medelidrissi Messages postés 180 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 26 novembre 2007 2
4 août 2006 à 02:51
Bonjour,

Ce que tu fais est bon, mais il ne te permet pas d'avoir plus d'une connexion, alors il vaut mieux avec ton code d'utiliser un seul winsok.


Cependant, pour avoir plusieurs connexions au même port, tu peux utiliser ta méthode, mais avec des collections d'objets, pour ne pas trop traîner, je te donne une source très instructive :
http://www.vbfrance.com/code.aspx?ID=22560plus précisément ce bout de code dans frmServer
Private Sub sck_ConnectionRequest(ByVal requestID As Long)
    Dim c As frmServerX
    Dim i As Long
    For i = 1 To mClients.Count
        If (mClients(i).sck.state = sckClosed) Then
            mClients(i).sck.Accept requestID
            Exit Sub
        End If
    Next
    If (mClients.Count >= SERVER_MAXCNX) Then Exit Sub
    Set c = New frmServerX
    c.sck.Accept requestID
    mClients.Add c
End Sub

Je te laisse découvrir cette source, si jamais tu ne comprends tjrs pas comment procéder, n'hésite pas à demander.


Bonne programmation.


Cordialement medelidrissi


<hr />

En Informatique, rien n'est impossible. mais, ce n'est pas toujours évident.
0
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
4 août 2006 à 04:56
salut

il existe un excellent tutoriel sur comment creer un winsock multiconnexion.
0
Guillamue06 Messages postés 157 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 11 juillet 2022 4
4 août 2006 à 12:36
Bonjour , merci pour vos réponce.

Je ne pence pas que j'ai besoin d'une source pour comprendre car déja il y a beaucoup de balise que je ne c'est pas se qu'elle veulent dire.

Je pence que j'ai besoin que l'on me dise comment je doit procéder pas a pas et la je pourai codé avec mes mots.





medelidrissi tu me dit que je peut utiliser un seul winsock.

Se que je ne comprend pas c'est que dans

Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)

Je suis obligé (enfin je n'arrive pas a faire otrement) de fermé winsock et d'accepté la connexion.
Ensuite j'ai ésseyer de remetre winsock en écoute mais cela ne fonctionne pas.

Des personnes mon dit qu'il faut que j'utilise 2 winsock.

Un winsock qui reste toujour en écoute et l'otre qui accepte les connexion

Mais comme je vien de dire je suis obligé de fermé un winsock pour accepté la connexion imposible ensuite de le remétre en écoute.

Si une personne pouré m'expliqué pas a pas comment faire sa seré gentil de votre par merci
0
Rejoignez-nous