VB/VB.Net [Résolu] Changement de serveur, connexion en MITM

Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#21
Re: Changement de serveur, connexion en MITM

Merci de vos réponses !

Toons, qu'entends tu par "tu déco le serveur du vrai client"? Est ce que je dois kicker le client D. de mon serveur, rompre ma connexion ? Si oui comment ? Parce que j'ai essayé de me faire, mais du coup, le client D. Me dit" la connexion à été interrompu inopinément". Je pose cette question sans faire de tests, je fais tous les tests demain soir :)
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#22
Re: Changement de serveur, connexion en MITM

ArkhAnik, Tu dois en effet rompre la connexion du client avec ton MITM.
Rien de plus simple qu'un:

Code:
Sock.Close
Sock.Dispose
Si il t'affiche que la connexion à été interrompu inopinément c'est que ya un problème avec un paquet précédent.
A moins qu'il n'arrive pas à se reconnecter à ton serveur actuel.
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#23
Re: Changement de serveur, connexion en MITM

D'accord c'est bien ce que je me disais. Je check ça ce soir et vous file mes logs ! Merci encore.
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#24
Re: Changement de serveur, connexion en MITM

Voici mes logs :



([C/G] => parser des packets reçus depuis le serveur officiel; 5555 => port reçu dans le 42 du client officiel)

Donc j'ai bien tout mis sur le port 5555, aucune erreur de là. Ensuite lors de la réception du 42 dans mon parser, je fais :
Code:
                        'on coupe le client
                        If serveur.client._close() Then
                            Console.WriteLine("[SERVEUR] client kické")
                        End If

                        'On détruit l'objet du login
                        If login._close() Then
                            Console.WriteLine("[CLIENT] fermeture du serveur de login")
                        End If
(client.reader, parser)

Avec la fonction qui permet de couper le client, de le kicker (_close) et mon listen du client D.. officiel:
Code:
        Sub _traitement()

            Console.WriteLine("[SERVEUR] écoute du client Dofus commencée")
            Console.WriteLine("[SYSTEM] Démarrage du client login MITM demandé")

            login._initialize_socket()
            'Connecté au serveur de log

            While (Sock.Connected)
                Try
                    Dim i = Sock.Receive(buffer) ' on met dans i le nombre d'octets recu
                    Dim data(i - 1) As Byte ' on créé un tableau de bytes du nombre de bytes recus
                    Array.Copy(buffer, data, i) ' on copie buffer dans data
                    Reader.parser(data)
                Catch ex As Exception 'Le client est déconnecté
                    Sock.Close()
                    Sock.Dispose()
                    Console.WriteLine("[SERVEUR] déconnecté")
                    Return 'fin de la fonction
                End Try
            End While

        End Sub

        Public Shared Function _close()
            Try
                Sock.Shutdown(SocketShutdown.Both)
                Sock.Close()
                Sock.Dispose()
                Return True
            Catch ex As Exception
                Console.WriteLine("[SERVEUR] BUG")
                Return False
            End Try
        End Function
(serveur.client => class qui gère les clients connectés)

Voilà, ces deux codes représentent les derniers logs.
Je ne comprends donc pas pourquoi un nouveau client ne vient pas se connecter, étant donner cette boucle dans mon serveur :
Code:
            While True 'Boucle à l'infini
                Console.WriteLine("[SERVEUR] en attente d'un client Dofus")
                'Se met en attente de connexion et appelle TraitementConnexion() lors d'une connexion.
                Dim sock_to_send As Socket = Sock.Accept() 'Bloquant tant que pas de connexion
                _traitement(sock_to_send) 'Traite la connexion du client
            End While
(serveur.serveur => serveur du MITM)

Donc normalement, si un nouveau client venait à se connecter, la fonction _traitement devrait être appeler pour instancier un nouveau client non ?
Donc voilà, mon code bloque ici...
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#25
Re: Changement de serveur, connexion en MITM



Cela m'a l'air correct.

Peux-tu nous montrer ton 42 trafiqué ?

Cordialement
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#26
Re: Changement de serveur, connexion en MITM

tu recois 55 bytes et t'en renvois 53 ca me parait bizarre ca devrait etre 51 car l'utf de l'ip a 4 caracteres de moins non ?
oui montre nous les octets du 42 trafiqué
 

BlueDream

Administrateur
Membre du personnel
Inscrit
8 Decembre 2012
Messages
2 010
Reactions
149
#27
Re: Changement de serveur, connexion en MITM

Ton write du 42 est bon, tu dois avoir un problème de parsing.

Cordialement
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#28
Re: Changement de serveur, connexion en MITM

Code:
00 A9 32 00 13 00 09 31 32 37 2E 30 2E 30 2E 31 15 B3 01 00 20 35 66 32 65 62 39 65 32 30 39 39 63 37 30 34 32 30 31 36 33 34 65 39 36 34 33 66 39 35 33 62 37
Voici mon packet 42 reçu par mon client D.. (donc le 42 transformé)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#29
Re: Changement de serveur, connexion en MITM

00 09 31 32 37 2E 30 2E 30 2E 31 15 B3 c'est bien 127.0.0.1:5555 pourtant
Sock.Listen(1) 'Se met en écoute ' => d'un seul client , peut etre que le temps de sortir de la boucle de deco l'autre client essai de se connecter mais peu pas a cause de ca , aussi pas normal que le serveur se deco quand il perd la co du 1er client :
Code:
  Catch ex As Exception 'Le client est déconnecté
                    Sock.Close()
                    Sock.Dispose()
                    Console.WriteLine("[SERVEUR] déconnecté")
                    Return 'fin de la fonction
                End Try
            End While
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#30
Re: Changement de serveur, connexion en MITM

Non excuse moi, je me suis un peu trompé sur cette ligne de réponse dans mes logs, en fait ce n'est pas "[SERVEUR] déconnecté", c'est "[CLIENT D..] Déconnecté". Il atteste de la déconexion du client D... Donc en fait, j'appelle une fonction, qui ferme le socket attribué au client de D.., quand je le ferme, le socket n'existe plus, donc forcément :

Code:
               Catch ex As Exception 'Le client est déconnecté
                    Sock.Close()
                    Sock.Dispose()
                    Console.WriteLine("[[color=#FF0000]CLIENT D..[/color]] déconnecté")
                    Return 'fin de la fonction
                End Try
            End While
Le try retourne un False, donc c'est Catch ex As Exception qui s'exécute, bref, ce code atteste que la connexion au client D.. officiel a bien été rompue.
Du coup ! Que penses tu de ça :
- J'ai passé effectivement mon Sock.Listen(2) pour que le client puisse se connecter même en parallèle de l'autre, mais rien à faire.
- Ma théorie :
Soit la boucle qui permet d'instancier de nouveaux client D.. ne fonctionne pas correctement, càd, tant que l'autre client D.. est connecté, la boucle ne tourne plus, donc aucune nouveau client peut se connecter, d'où le problème, donc ma question c'est : comment fonctionne cette boucle ? Est ce qu'elle bloque tant qu'un client est connecté au serveur ? :
Code:
            While True 'Boucle à l'infini
                Console.WriteLine("[SERVEUR] en attente d'un client Dofus")
                'Se met en attente de connexion et appelle TraitementConnexion() lors d'une connexion.
                Dim sock_to_send As Socket = Sock.Accept() 'Bloquant tant que pas de connexion
                _traitement(sock_to_send) 'Traite la connexion du client
            End While
- ou sinon, le client D.. ne tente pas de reconnexion, au quel cas, celà proviendrai de mon packet 42. Pourtant il me semble qu'il soit correcte non ?
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#31
Re: Changement de serveur, connexion en MITM

le message 42 est nickel a l'octet pres , on peu eliminer ca
pour la boucle en effet elle lance _traitement qui elle meme est une boucle donc elle boucle jamais tant que _traitement est pas terminée , essai de mettre _traitement dans un thread pour que ca marche en parallele et que ca bloque pas cette boucle , pas sur que ca change grand chose a moins que le client officiel peu vraiment attendre quelques secondes que le listen prenne effet et ca serait ca le probleme ?
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#32
Re: Changement de serveur, connexion en MITM

Je check ça et te dis desuite
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#33
Re: Changement de serveur, connexion en MITM

DOUBLE POST !
Alors je ne peux pas lancer un nouveau thread car sinon je ne peux plus transférer le socket attribuer au client (je pourrais en passant pas une variable partagée le contenant, mais ça n'a plus vraiment de sens). En analysant mon code, mon listener appelle effectivement _traitement, mais cette fonction n'est pas une boucle, il s'agit de la fonction qui instancie la nouvelle classe attribuée au client qui elle boucle etc ... (dans cette nouvelle class, il existe aussi une fonction appelée _traitement, donc tu as du confondre). Bref c'est compréhensible, mon code n'est pas forcément des mieux organisés.

Donc pour régler cette petite histoire et clarifier les choses, je vais lancer un second serveur, donc confirme moi juste si c'est bon (à la manière de LeafBot comme tu le disais):

- Je lance le serveur (1) MITM port 5555
- Je lance un second serveur (2) MITM port 443
- Le client D.. se connecte sur le serveur (1) par le port 5555
...
- Réception du paquet 42, je le modifie et modifie tq : IP = 127.0.0.1 et port = 443
- Je kick le client D.. du serveur (1) (Sock.Close, Sock.Dispose)
- Et si tout fonctionne bien (\o/), il client D.. devrait se connecter comme par magie sur le serveur (2) par le port 443 ?!

Est-ce que celà est sensé ? (d'après tout ce que j'ai appris grâce à vous, il me semble que oui :>)

EDIT : mince, on ne peut pas instancier deux serveur en même temps avec 2 classes différentes ? :(
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#34
Re: Changement de serveur, connexion en MITM

si on peu du moment qu'ils ont pas le meme port mais si tu veux boucler comme tu le fais alors faut les mettre en thread sinon une seule boucle va marcher
si tu galeres trop envoie le projet a [email protected] et un message ici pour que j'aille lire mes mails et quand j'aurais le temps je regarderais
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#35
Re: Changement de serveur, connexion en MITM

Exacte, bien vu. Donc c'est ce que j'ai fait. J'ai mes deux serveur correctement initialisés, sur deux ports différents.
J'envoie le 42 modifié (avec le nouveau port différent de l'ancien) au client D.., mais rien ne se passe :(.
Je ne reçois aucun nouveau client sur mon serveur (2) (443), personne ne se connecte.

Je commence à désespérer ...
Comment est ce que je dois kicker le client D.. du serveur (1) ? Normalement, si je ferme (.close(), .dispose()) le socket qui lui est attribué, cela coupe la connexion. C'est bien comme ça qu'il faut procéder ?
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#36
Re: Changement de serveur, connexion en MITM

Tiens, j'ai une question ! (pour changer, hein).

(class client(MITM).reader.parser)
Code:
                Do Until index = data.Length ' on traite jusque la fin
                    Packet_Start = index
                    id_and_length = data(index) * 256 + data(index + 1) ' les 2 premiers octets
                    packet_length_of = id_and_length And 3 ' on veut les 2 derniers bits donc on masque (and) avec 11 en binaire (3 en decimal)
                    packet_id = id_and_length >> 2 ' on veut les 14 premiers bits donc on decale les 16 bits de 2 bits vers la droite
                    index += 2 + packet_length_of  ' on avance des 2 octets de id_and_length + du nombre d'octets de la taille de taille

                    Select Case packet_length_of ' on lit le bon nombre d'octet pour connaitre la taille des données
                        Case 0
                            packet_length = 0
                        Case 1
                            packet_length = data(index - 1)
                        Case 2
                            packet_length = 256 * data(index - 2) + data(index - 1)
                        Case 3
                            packet_length = 65536 * data(index - 3) + 256 * data(index - 2) + data(index - 1)
                    End Select

                    If index + packet_length > data.Length Then ' buffer trop petit ?
                        Waiting = packet_length + index - Packet_Start ' alors on le signale
                        ReDim Data_Out(data.Length - Packet_Start - 1) ' on redimensionne le tableau de debut du paquet trop long
                        Array.Copy(data, Packet_Start, Data_Out, 0, data.Length - Packet_Start) ' on copie le debut du paquet trop long
                        Exit Sub ' on sort
                    End If

                    Dim debug As String = "recu : id = " & packet_id & ", taille = " & packet_length & vbCrLf ' on ecrit l'ID et la taille
                    packetid = packet_id
                    Dim packet(0) As Byte ' on prepare le paquet
                    If packet_length > 0 Then ' si sa taille est plus grande que 0 on redimensionne
                        ReDim packet(packet_length - 1)
                        Array.Copy(data, index, packet, 0, packet_length) ' et on copie les donnée
                    End If
                    Dim j As Integer = 1
                    For i = 0 To packet_length - 1 ' on fait defiler tout les octets recus
                        debug &= packet(i).ToString("X2") ' on ecrit l'octet proprement pour de bon ce coup ci
                        j += 1
                        If j = 16 Then
                            debug &= vbCrLf
                            j = 1
                        End If
                    Next ' au suivant

                    If packet_length >= 0 Then
                        Console.WriteLine("[C/G] Réception ID " & packet_id & ", Lenght : " & packet_length)
                    End If

                    If packet_id = 42 Then
                        Dim _SSD As New Network.Connection.Server.Select.SelectedServerDataMessage
                        _SSD.deserialize(New DofusReader(New System.IO.MemoryStream(packet)))

                        'on lui balance un faux truc hé hé hé
                        Dim SSD As New Network.Connection.Server.Select.SelectedServerDataMessage
                        SSD.init(_SSD.serverId, "127.0.0.1", 443, _SSD.canCreateNewCharacter, _SSD.ticket) ' ces qui qui ecoute le porte 443
                        SSD.pack(mitm.serveur.client._getSock())

                        'on coupe le client
                        If serveur.client._close() Then
                            Console.WriteLine("[CLIENT D2] fermeture du client")
                        End If

                        'On détruit l'objet du login
                        If login._close() Then
                            Console.WriteLine("[CLIENT] fermeture du serveur de login")
                        End If

                        'on attend une nouvelle conexion sur le serveur MITM

                    End If

                    index += packet_length ' on met l'index a jour
                    Packet_End = index
                    If Packet_End = data.Length Then ' si ca tombe pile poil alors le buffer etait assez grand
                        Waiting = 0 ' on reset
                        ReDim Data_Out(0) ' on reset
                    End If
                Loop

                If Not packet_id = 42 Then
                    serveur.client._send_to_client(data)
                End If

Ceci est la boucle de mon parser.
Je reçois (si je ne dis pas de connerie, d'après WPEPro) un gros paquet contenant 4 paquet : 6314, 10, 22, 42. Or d'après ce bout de code, seul le paquet 42 va être transmis au client, et les 3 autres vont être délaissé. Donc le client D.. ne recevrai jamais ces trois paquets, du coup il bug, du coup, il ne se connecte pas, non ?!!

EDIT : après mûre relfexion, je pense bien que le problème vient de là, c'est logique. Maintenant, si je mets ma condition "If Not packet_id=42 Then ..." dans la boucle, en changeant data par packet, ben ça plante... donc je vais refaire bien mon parser, pour qu'il envoie correctement tous les packets 1 par 1.
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#37
Re: Changement de serveur, connexion en MITM

AND THAT WORKS WELL ! ! !

Avec ce parser (juste la boucle)!
Code:
                Do Until index = data.Length ' on traite jusque la fin
                    Packet_Start = index
                    id_and_length = data(index) * 256 + data(index + 1) ' les 2 premiers octets
                    packet_length_of = id_and_length And 3 ' on veut les 2 derniers bits donc on masque (and) avec 11 en binaire (3 en decimal)
                    packet_id = id_and_length >> 2 ' on veut les 14 premiers bits donc on decale les 16 bits de 2 bits vers la droite
                    index += 2 + packet_length_of  ' on avance des 2 octets de id_and_length + du nombre d'octets de la taille de taille

                    Select Case packet_length_of ' on lit le bon nombre d'octet pour connaitre la taille des données
                        Case 0
                            packet_length = 0
                        Case 1
                            packet_length = data(index - 1)
                        Case 2
                            packet_length = 256 * data(index - 2) + data(index - 1)
                        Case 3
                            packet_length = 65536 * data(index - 3) + 256 * data(index - 2) + data(index - 1)
                    End Select

                    If index + packet_length > data.Length Then ' buffer trop petit ?
                        Waiting = packet_length + index - Packet_Start ' alors on le signale
                        ReDim Data_Out(data.Length - Packet_Start - 1) ' on redimensionne le tableau de debut du paquet trop long
                        Array.Copy(data, Packet_Start, Data_Out, 0, data.Length - Packet_Start) ' on copie le debut du paquet trop long
                        Exit Sub ' on sort
                    End If
                    Dim debug As String = "recu : id = " & packet_id & ", taille = " & packet_length & vbCrLf ' on ecrit l'ID et la taille
                    packetid = packet_id
                    Dim packet(0) As Byte ' on prepare le paquet
                    If packet_length > 0 Then ' si sa taille est plus grande que 0 on redimensionne
                        ReDim packet(packet_length - 1)
                        Array.Copy(data, index, packet, 0, packet_length) ' et on copie les donnée
                    End If
                    Dim j As Integer = 1
                    For i = 0 To packet_length - 1 ' on fait defiler tout les octets recus
                        debug &= packet(i).ToString("X2") ' on ecrit l'octet proprement pour de bon ce coup ci
                        j += 1
                        If j = 16 Then
                            debug &= vbCrLf
                            j = 1
                        End If
                    Next ' au suivant


                    If Not packet_id = 42 Then
                        Console.WriteLine("Reception id " & packet_id & ", Lenght -> " & packet_length)
                        MySock.Send(data)
                    Else
                        Dim _SSD As New Network.Connection.Server.Select.SelectedServerDataMessage
                        _SSD.deserialize(New DofusReader(New System.IO.MemoryStream(packet)))

                        Main.GameIp = _SSD.address
                        Main.GamePort = _SSD.port

                        Dim SSD As New Network.Connection.Server.Select.SelectedServerDataMessage
                        SSD.init(_SSD.serverId, "127.0.0.1", 443, _SSD.canCreateNewCharacter, _SSD.ticket) ' ces qui qui ecoute le porte 443
                        SSD.pack(MySock)

                        ServerSock.Close()
                        MySock.Close()
                    End If

                    index += packet_length ' on met l'index a jour
                    Packet_End = index
                    If Packet_End = data.Length Then ' si ca tombe pile poil alors le buffer etait assez grand
                        Waiting = 0 ' on reset
                        ReDim Data_Out(0) ' on reset
                    End If
                Loop

Merci de votre aide les gars ! C'est super cool ! Ah bientôt pour de nouveaux problèmes !
(au final, le problème venait bien des paquets)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#38
Re: Changement de serveur, connexion en MITM

ah j'avais pas vu qu'il avait ete changé , d'origine il est comme ca (je me demande pourquoi quelqu'un a voulu changer la perfection) :
Code:
  Public Sub parsing(ByVal data() As Byte)
        Try
            Dim Serveur As String = Form1.ServerSock.RemoteEP.Address.ToString 'pour savoir sur quel serveur on est
            Dim sock As BazSocket = CType(Form1.lstClient.Items(0), Client).Socket
            If Serveur <> "213.248.126.180" Then ' si pas serveur de loging on copie data vers le jeu
                If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                    sock.Send(data)
                End If
            End If
            Launched = True
            Dim index As Integer ' pour savoir ou on est
            Dim id_and_length As UShort ' les 2 premiers octets (16 bits)
            Dim packet_id As UShort ' les 14 premiers bits des 16
            Dim packet_length_of As Byte ' les 2 derniers bits des 16
            Dim packet_length As Integer ' la longueur du packet

            Dim Packet_Start As Integer
            Dim Packet_End As Integer

            If Waiting > 0 Then
                'Array.Copy(data, Packet_Start, Data_Out, Waiting, Data_Out.Length - Waiting)
                Dim data_temps(data.Length + Data_Out.Length - 1) As Byte

                Array.Copy(Data_Out, 0, data_temps, 0, Data_Out.Length)
                Array.Copy(data, 0, data_temps, Data_Out.Length, data.Length)
                data = data_temps
                'Application.DoEvents()
            End If

            Do Until index = data.Length
                Packet_Start = index
                id_and_length = data(index) * 256 + data(index + 1)
                packet_length_of = id_and_length And 3 ' on veut les 2 derniers bits donc on masque (and) avec 11 en binaire (3 en decimal)
                packet_id = id_and_length >> 2 ' on veut les 14 premiers bits donc on decale les 16 bits de 2 bits vers la droite

                index += 2 + packet_length_of  ' on avance des 2 octets de  id_and_length + du nombre d'octets de la taille de taille 

                Select Case packet_length_of
                    Case 0
                        packet_length = 0
                    Case 1
                        packet_length = data(index - 1)
                    Case 2
                        packet_length = 256 * data(index - 2) + data(index - 1)
                    Case 3
                        packet_length = 65536 * data(index - 3) + 256 * data(index - 2) + data(index - 1)
                End Select

                If index + packet_length > data.Length Then
                    Waiting = packet_length + index - Packet_Start
                    ReDim Data_Out(data.Length - Packet_Start - 1)
                    Array.Copy(data, Packet_Start, Data_Out, 0, data.Length - Packet_Start)
                    Exit Sub
                End If

                Console.WriteLine("recu : id -> " & packet_id & " " & Id_to_String(packet_id) & " len -> " & packet_length)

                If packet_id = 0 Then
                    Beep()
                    Exit Sub
                End If

                Dim packet(0) As Byte
                If packet_length > 0 Then
                    ReDim packet(packet_length - 1)
                    Array.Copy(data, index, packet, 0, packet_length)
                End If

                If Form1.Debug.Checked And packet_length > 0 Then
                    Dim debug As String = ""
                    Dim j As Integer = 0
                    For i As Integer = 0 To packet_length - 1 ' on fait defiler tout les octets recus
                        debug += data(i).ToString("X2") & " "
                        j += 1
                        If j = 16 Then
                            debug += vbCrLf
                            j = 0
                        End If
                    Next
                    Console.WriteLine(debug & vbCrLf)
                End If

                DataCheck(packet_id, New Dofus.DofusReader(New IO.MemoryStream(packet)))

                index += packet_length
                'If Packet_End + index > data.Length Then
                '    Waiting = index
                '    ReDim Data_Out(Packet_End - Packet_Start - 1)

                'End If

                Packet_End = index
                Dim data_temps(Packet_End - Packet_Start - 1) As Byte
                Array.Copy(data, Packet_Start, data_temps, 0, data_temps.Length)
                If Serveur = "213.248.126.180" Then ' si serveur de loging 
                    If packet_id = 42 Then 'si c'est packet qui contient l'ip de serveur de jeu
                        If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                            sock.Send(Data_Out) ' on envoie au jeu un faux paquet qui contient 127.0.0.1 pour l'ip de serveur de jeu
                        End If
                        CType(Form1.lstClient.Items(0), Client).Socket.Close()
                        Do Until Form1.lblStatServeur.Text = "Serveur : Déconnecté"
                            Application.DoEvents()
                        Loop
                        Form1.ServerSock.Connect(Form1.Address, 5555)
                    Else
                        If sock IsNot Nothing AndAlso sock.State = BazSocketState.Connected Then
                            sock.Send(data_temps)
                        End If
                    End If
                End If

                If Packet_End = data.Length Then
                    Waiting = 0
                    ReDim Data_Out(0)
                End If
            Loop
            Launched = False
            'Console.WriteLine()
        Catch e As Exception
            Console.WriteLine("parsing() " & e.TargetSite.Name & " -> " & e.Message)
        End Try
    End Sub
 
Inscrit
22 Septembre 2013
Messages
44
Reactions
0
#39
Oui ben oui ! Je ne sais pas pourquoi je l'avais changé, ça devait faire plus joli.
Merci beaucoup ToOns :) et lolo !
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#40
je pesne que tu as voulu le changer car tu utilises pas b@zsocket
 
Haut Bas