C# Mauvais ID de Paquet

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#21
c'est violent 5 threads quand un seul suffit
 
A

Anonymous

Invité
#22
J'ai du mal à comprendre à quoi ils servent tous :'/

Autre remarque sur les conventions de code, l'underscore en début de variable pour les globales il vaut mieux éviter dans un language aussi verbeux que C# certains aiment mais je trouve que ça devient rapidement difficile à lire. Un autre convention est d'utiliser "m" pour "my" en début de var, exemple : "mSocket". Après c'est une question de goût, si cela te convient tant mieux :)
 
Inscrit
19 Mai 2013
Messages
68
Reactions
0
#23
ToOnS a dit:
c'est violent 5 threads quand un seul suffit
Munrek a dit:
J'ai du mal à comprendre à quoi ils servent tous :'/

Autre remarque sur les conventions de code, l'underscore en début de variable pour les globales il vaut mieux éviter dans un language aussi verbeux que C# certains aiment mais je trouve que ça devient rapidement difficile à lire. Un autre convention est d'utiliser "m" pour "my" en début de var, exemple : "mSocket". Après c'est une question de goût, si cela te convient tant mieux :)
Bon d'abord, pour les underscores, c'est pas trop grave, moi je préfère, question d'habitudes, toutes mes variables privées sont avec l'underscore et je suis presque sûr que ce n'es pas ça qui fait merder la lecture des packets ;)

Quand à mes threads. _parsing_Thread, je vais l'enlever avec la Queue, c'était juste un essai pour trouver le problème. Maintenant que je sais que ça ne bien pas de là... _reception_Thread, tout le monde l'utilise. _feeding_Thread je pense l'enlever. _order_Thread, j'ai été obligé de le mettre sinon mon application freezait quand l'utilisateur rentrait une commande. Enfin _connection_Thread, v´est pour pouvoir utiliser les timers des Threads, qui permettront de reconnecter toutes les X heures...
 
Inscrit
19 Mai 2013
Messages
68
Reactions
0
#24
Up ! Donc il me reste plus que 2 Threads, _connection_Thread et _reception_Thread ! Par contre, mon _connection_Thread devient bien IsAlive = false au bout d'un moment (quand, je ne sais pas du tout par contre !)

EDIT : Parfaite illustration de mon problème ! J'ai ajouté une fonction pour écrire les logs dans un fichier texte pour voir à quel buffer ça plante et....



On voit bien qu'il y a 2 instances d'un processus (soit 2 instances de _reception_Thread) ! Je l'instancie effectivement 2 fois, la première à la connexion au serveur d'identification, la deuxième à la connexion au serveur de jeu ! Je n'arrête effectivement pas le thread précédent ! Je vais voir comment faire, et si j'arrive pas, j'aurai encore besoin de votre aide !

EDIT 2 : En fait, il faudrait que je traite mes paquets hors du thread, mais comment sortir du thread en le laissant tourner ? Parce que je reçois le paquet de sélection du serveur, je le traite, donc on est dans le thread de traitement, et depuis le traitement je reconnecte le serveur, donc la reconnexion est toujours dans le thread, et ça instancie dans l'ancien thread !
 
Inscrit
19 Mai 2013
Messages
68
Reactions
0
#25
UP ! :

Bon, problème de thread résolu ! Mais bon, la traduction des headers des paquets ne marche pas tip top ! Tout est juste sauf...

[15:00:47] Bienvenue dans Feed Them.
[15:00:47] 1 compte a été chargé :
[15:00:47] Tu sauras pas le nom de mon compte !
[15:00:54] Connexion de Tu sauras pas le nom de mon compte !.
[15:00:55] La connexion au serveur d'identification est établie.
[15:00:55] Buffer reçu : 11
[15:00:55] Paquet reçu, ID : 1, longueur totale : 11, longueur contenu : 8
[15:00:55] Buffer reçu : 345
[15:00:55] Paquet reçu, ID : 3, longueur totale : 345, longueur contenu : 341
[15:00:55] Buffer reçu : 7
[15:00:55] Paquet reçu, ID : 10, longueur totale : 7, longueur contenu : 4
[15:00:55] File d'attente : 14/14.
[15:00:55] Buffer reçu : 122
[15:00:55] Paquet reçu, ID : 6314, longueur totale : 2, longueur contenu : 0
[15:00:55] Paquet reçu, ID : 10, longueur totale : 7, longueur contenu : 4
[15:00:55] File d'attente : 0/14.
[15:00:55] Paquet reçu, ID : 22, longueur totale : 49, longueur contenu : 46
[15:00:55] Connexion réussie.
[15:00:55] Paquet reçu, ID : 6469, longueur totale : 64, longueur contenu : 61
[15:00:56] La connexion au serveur de jeu est établie.
[15:00:56] Buffer reçu : 13
[15:00:56] Paquet reçu, ID : 1, longueur totale : 11, longueur contenu : 8
[15:00:56] Paquet reçu, ID : 101, longueur totale : 2, longueur contenu : 0
[15:00:56] Buffer reçu : 9
[15:00:56] Paquet reçu, ID : 6362, longueur totale : 9, longueur contenu : 6
[15:00:56] Buffer reçu : 113
[15:00:56] Paquet reçu, ID : 111, longueur totale : 2, longueur contenu : 0
[15:00:56] Paquet reçu, ID : 175, longueur totale : 9, longueur contenu : 6
[15:00:56] Paquet reçu, ID : 6340, longueur totale : 9, longueur contenu : 6
[15:00:56] Paquet reçu, ID : 6305, longueur totale : 17, longueur contenu : 14
[15:00:56] Paquet reçu, ID : 6434, longueur totale : 57, longueur contenu : 54
[15:00:56] Paquet reçu, ID : 6216, longueur totale : 13, longueur contenu : 10
[15:00:56] Paquet reçu, ID : 6267, longueur totale : 4, longueur contenu : 1
[15:00:56] Paquet reçu, ID : 176, longueur totale : 2, longueur contenu : 0
[15:00:56] Buffer reçu : 9
[15:00:56] Paquet reçu, ID : 6362, longueur totale : 9, longueur contenu : 6
[15:00:56] Buffer reçu : 84
[15:00:56] Paquet reçu, ID : 6100, longueur totale : 7, longueur contenu : 4
[15:00:56] File d'attente : 1/1.
[15:00:56] Paquet reçu, ID : 6100, longueur totale : 7, longueur contenu : 4
[15:00:56] File d'attente : 0/0.
[15:00:56] Paquet reçu, ID : 176, longueur totale : 2, longueur contenu : 0
[15:00:56] Paquet reçu, ID : 6100, longueur totale : 7, longueur contenu : 4
[15:00:56] File d'attente : 0/0.
[15:00:56] Paquet reçu, ID : 151, longueur totale : 61, longueur contenu : 58
[15:00:56] Buffer reçu : 11
[15:00:56] Paquet reçu, ID : 6362, longueur totale : 9, longueur contenu : 6
[15:00:56] Paquet reçu, ID : 176, longueur totale : 2, longueur contenu : 0
[15:00:56] Buffer reçu : 3472
[15:00:57] Paquet reçu, ID : 6087, longueur totale : 9, longueur contenu : 6
[15:00:57] Paquet reçu, ID : 153, longueur totale : 56, longueur contenu : 53
[15:00:57] Connecté en tant que : Tu sauras pas le nom de mon personnage !.
[15:00:57] Paquet reçu, ID : 3016, longueur totale : 112, longueur contenu : 109
[15:00:57] Inventaire chargé.
[15:00:57] Chacha Tu sauras pas son ID !chargé.
[15:00:57] Chacha Tu sauras pas son ID ! chargé.
[15:00:57] Paquet reçu, ID : 6231, longueur totale : 6, longueur contenu : 3
[15:00:57] Paquet reçu, ID : 6231, longueur totale : 38, longueur contenu : 35
[15:00:57] Paquet reçu, ID : 5689, longueur totale : 6, longueur contenu : 3
[15:00:58] Paquet reçu, ID : 6058, longueur totale : 5, longueur contenu : 2
[15:00:58] Paquet reçu, ID : 43, longueur totale : 2, longueur contenu : 0 GROS CACA, C'EST LE 6440 QUI DOIT ÊTRE RECU.
[15:00:59] Paquet reçu, ID : 108, longueur totale : 65, longueur contenu : 61
[15:00:59] Paquet reçu, ID : 768, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 2112, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 9408, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 0, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 16320, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 256, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 1895, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 15232, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 16320, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 256, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 1895, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 15232, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 6617, longueur totale : 113, longueur contenu : 110
[15:00:59] Paquet reçu, ID : 12191, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 0, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 0, longueur totale : 3, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 272, longueur totale : 85, longueur contenu : 82
[15:00:59] Paquet reçu, ID : 6536, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 4314, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 16320, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 256, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 1895, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 15232, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 6408, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 6680, longueur totale : 113, longueur contenu : 110
[15:00:59] Paquet reçu, ID : 0, longueur totale : 15, longueur contenu : 12
[15:00:59] Paquet reçu, ID : 7680, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 14016, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 14445, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 3264, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 512, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 0, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 128, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 16320, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 256, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 1895, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 15232, longueur totale : 181, longueur contenu : 178
[15:00:59] Paquet reçu, ID : 6472, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 6208, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 13568, longueur totale : 2, longueur contenu : 0
[15:00:59] Paquet reçu, ID : 3, longueur totale : 2, longueur contenu : 0

Et le plus surprenant dans tout ça, c'est qu'en faisant du pas à pas, ça marche perfect !

EDIT :

Tout est résolu ! J'avais juste oublié un break ici :

Code:
                if (index + packet_Length > packet_In.Length) // Le buffer ne contient pas tout le message
                {
                    _bytes_Wanted = packet_Length - packet_Start;
                    _packet_Out = new byte[packet_In.Length - packet_Start];
                    Array.Copy(packet_In, packet_Start, _packet_Out, 0, packet_In.Length - index); // Copie le début du message dans un buffer
                    break;
                }
Alleluia ! Ce topic peut-être fermé ! :)
 
Haut Bas