CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Tserversocket, onclientdisconnect part en loop

BlackChinchilla
BlackChinchilla
Niveau 10
15 avril 2015 à 16:19:01

Bonjour :hap:
alors en utilisant TServerSocket pour mon serveur, j'ai un énorme problème :(

Quand un mec perd sa co internet ou son client crash, TServersocket lance la procédure de OnClientDisconnect facilement 4000 fois en loop et inévitablement, le programme plante :(

Je peux pas passer mon code en ce moment, même si c'est useless car je code en Delphi, mais voici en gros comment ça se présente:

OnClientDisconnect est appelé.

  • Le serveur lance une procédure pour retrouver les infos du client, qui sont dans une classe que j'ai créé, à partir du socket qu'il utilise.
  • Le serveur change le compte de personnes dans le serveur en général en enlevant celle qui viens de déco. (J'viens de penser à une meilleure façon :hap: )
  • Lorsque le client est trouvé, le server prend la salle dans laquelle le client était (système de salle genre chat IRC) et lui enlève 1.
  • Le serveur envoie à tout les clients une ligne indiquant la salle et le nouveau compte pour l'afficher.
  • Je brise le loop avec break;

J'ai essayé de loggé le problème, et tout semble venir que la personne déconnecte virtuellement 4000 fois.

[99.xxx.xxx.xxx]disconnected 
//La personne est déco, premier log généré au début de onclientdisconnect
found socket
//Lles infos clients sont trouvé via un loop
untaken char
//Nombre de personnes modifié
removed from room
//Le comptes pour la salle où était la personne est modifié
[99.xxx.xxx.xxx]disconnected
found socket
untaken char
removed from room
[99.xxx.xxx.xxx]disconnected
found socket
untaken char
removed from room
[99.xxx.xxx.xxx]disconnected
found socket
untaken char
removed from room

du coup je sais pas comment régler le problème, et s'en est un plutôt gros :hap:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment