Le fameux paquet

Inscrit
3 Mai 2019
Messages
5
Reactions
1
#1
Bonjour à tous , ça fait maintenant presque 1 jour que je me casse le crane à essayer de gérer le fameux paquet 42 "SelectedServerDataMessage" mais en vain , je suis en MITM. Voila le schéma que je suis ( est ce le bon ? ) :

Reception du packet 42 -- > On le deserialize , je modifie l'ip et le port en local "127.0.0.1" "5556", je serialize je write bien avec le header , je l'envoie au client , suite à ça je close le socket client ainsi mon thread de lecture du client catch une erreur ( verif avec une variable switchconnection ) si elle est en true , je close le thread de lecture du server, ainsi que le socket server , je recreer un socket local "127.0.0.1" "5556" , puis je relance une connection au serveur voulu en utilisant ce que j'ai deserializer du paquet .

Voila je sais pas si c'est à peu près compréhensible tout semble un peu flou dans ma tête je ne sais pas si j'ai déja la bonne compréhension du changement de serveur, c'est donc pourquoi je fais appel à votre aide.

Est ce que je suis bon en suivant mon logique ou quelque chose ne va pas ?
Si vous voulez des morceaux de mon code merci de me le faire remarquer je ne voulais pas surcharger le sujet , merci à vous !
 
Inscrit
29 Aout 2016
Messages
10
Reactions
0
#2
Ça aurai été mieux que tu décrives tes étapes ligne par ligne plutôt que tout condensé comme ça.
Sinon pour ton problème tu devrais essayer de fermer ta première socket uniquement lorsque le client s'est connecté à la deuxième.

- Réception du message 42 depuis le socket Login
- Ouverture du socket Game
- Réécriture et renvoi au socket Login
- Le client se connecte au socket Game
- Fermeture du socket Login
- ....
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#3
Ça aurai été mieux que tu décrives tes étapes ligne par ligne plutôt que tout condensé comme ça.
Sinon pour ton problème tu devrais essayer de fermer ta première socket uniquement lorsque le client s'est connecté à la deuxième.

- Réception du message 42 depuis le socket Login
- Ouverture du socket Game
- Réécriture et renvoi au socket Login
- Le client se connecte au socket Game
- Fermeture du socket Login
- ....
Pas sûr que le client se connecte à la nouvelle IP si tu ne le close pas avant :zzz:
 
Inscrit
3 Mai 2019
Messages
5
Reactions
1
#4
Oui il faut d'abord que je close le socketclient d'origine pour attendre la nouvelle connection
 
Inscrit
29 Aout 2016
Messages
10
Reactions
0
#5
Oui mais s'il close le 1er socket avant d'avoir ouvert le 2e le client ne risque pas de se manger un Connection Refused parce qu'il essaye de se connecter à un port qui n'est pas encore ouvert ?
 

tazman59

Contributeur
Inscrit
20 Decembre 2012
Messages
149
Reactions
27
#6
Tu peux ouvrir un listener sur le nouveau port, puis déconnecter le client :)
Ensuite, dès que le nouveau listener reçoit une connexion, tu te connectes au serveur de jeu (l'ip que tu as enregisté auparavant).
 
Inscrit
3 Mai 2019
Messages
5
Reactions
1
#7
Tu peux ouvrir un listener sur le nouveau port, puis déconnecter le client :)
Ensuite, dès que le nouveau listener reçoit une connexion, tu te connectes au serveur de jeu (l'ip que tu as enregisté auparavant).
Je vais essayer ça merci
 
Haut Bas