AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
TCL C74 Series 55C743 – TV 55” 4K QLED 144 Hz Google TV (Via ODR ...
499 €
Voir le deal

 

 [Résolu] Problème réseau - Deadlock

Aller en bas 
2 participants
AuteurMessage
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyDim 20 Oct 2013 - 21:51

Hello,
j'ai aujourd'hui attaqué les sockets et tout la tralala pour voir si le jeu sur lequel je bosse pourrais être conçu pour du multiplayer.
J'ai donc commencé par un truc assez simple, faire un pong Razz

Enfin, aussi simple soit un pong, aussi basiques soient les sockets, sur un jeu en temps réel je me suis cassé les dents.

Donc pour commencer, le jeu peut faire serveur ou client.
Selon l'un ou l'autre, il va envoyer les infos du client ou du serveur, et réceptionner dans un thread les données qu'il lui faut.
Etant novice en online, sockets et threads, j'ai surement fait une connerie car quand j'active la réception des données du coté du serveur et du client en même temps, bah tout freeze...
Si la réception est activé que d'un coté, bah ça fonctionne et la raquette dont les données sont envoyées est bien update.

Voici la source: http://pastebin.com/UavkcL94

Si quelqu'un saurais m'aider, je le remercie d'avance :p


ps: Si quelqu'un s'y connait en réseau et qu'il aurais une structure de programme a me conseiller je suis preneur.
Car la quand je vois la galère pour un jeu 2 joueurs, et que dans l'idéal le jeu sur lequel je bosse pourrait aller jusqu'à 4 joueurs simultanés, ça me fait peur >< (même si logiquement on est très loin du mmo, donc c'est pas non plus sensé être la mort).

_________________
[Résolu] Problème réseau - Deadlock Runningpotato1[Résolu] Problème réseau - Deadlock TvF6GED [Résolu] Problème réseau - Deadlock MdetltS


Dernière édition par onilink_ le Lun 21 Oct 2013 - 22:09, édité 1 fois
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1480
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyLun 21 Oct 2013 - 20:00

Ancien message:
Spoiler:
Solution:

J' ai trouvé.
Les deux programme essayent de recevoir des données. Ils ont locké un mutex (ligne 281) . Ils délockerons le mutex lorsque un message sera reçu.
Or en parallèle, la boucle principale est locké par le même mutex (ligne 365). Or c'est dans cette boucle que qu'on envoie des données.
Deadlock!

_________________
[Résolu] Problème réseau - Deadlock Pochette[Résolu] Problème réseau - Deadlock Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyLun 21 Oct 2013 - 22:08

Oh je vois, donc en fait j'ai fait n'imp avec les mutex ><
Du coup faut juste que je crée un autre mutex... (et je viens de tester ça marche nickel).

Merci arthuro Very Happy

Me reste plus qu'a tester mon pong en online maintenant :p
(et virer le freeze quand un des deux joueurs quitte...)

_________________
[Résolu] Problème réseau - Deadlock Runningpotato1[Résolu] Problème réseau - Deadlock TvF6GED [Résolu] Problème réseau - Deadlock MdetltS
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1480
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyLun 21 Oct 2013 - 22:17

De rien, c'était avec plaisir.

_________________
[Résolu] Problème réseau - Deadlock Pochette[Résolu] Problème réseau - Deadlock Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyLun 21 Oct 2013 - 22:19

Je sais vers qui me tourner quand j'aurais de nouveaux soucis mrgreen2 

Sinon, pour un jeu a 4 joueurs, j'imagine qu'il faudrait que je passe par un sélecteur (multiplexage) avec un thread pour recevoir les données comme ici?

_________________
[Résolu] Problème réseau - Deadlock Runningpotato1[Résolu] Problème réseau - Deadlock TvF6GED [Résolu] Problème réseau - Deadlock MdetltS
Revenir en haut Aller en bas
arthuro
Utilisateur confirmé: Rang ****
arthuro


Messages : 1480
Localisation : Paris
Projet Actuel : Diagon https://arthursonzogni.com/Diagon

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyVen 25 Oct 2013 - 23:20

Du coup oui. (Enfin cela dépend)

Je n'ai fait qu'une fois du réseau avec la SFML.
J'avais utilisé une architecture non-parallèle et par conséquent j'avais mis mes sockets en mode non-bloquant.
Ensuite j'ai pas mal galéré et eut de gros problème.
Puis je me suis libéré des soucis en switchant les mode bloquant/non bloquants de la manière suivante: bloquant pour la réception et bloquant pour l'envoi. C'était pas terrible.

Bref, je te conseil de continuer ce que tu as commencé. C'est je pense la meilleur solution. Du coup tu dois soit augmenter le nombre de thread pour dialoguer avec plusieurs programmes ou bien utiliser les sélectors.
Par praticité, j'utiliserais des sélectors. Les programmes multithreadé avec de surcroit du réseau sont propices aux bugs. On a plus l'habitude de réfléchir en série plutôt que parallèlement. Mais bon tu peux très bien faire de threads en plus mais je ne le conseil pas.

_________________
[Résolu] Problème réseau - Deadlock Pochette[Résolu] Problème réseau - Deadlock Signature.php?gid=588
D'autres jeux :
In The Cube
In the cube 2
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock EmptyVen 25 Oct 2013 - 23:57

Okey merci pour la précision :b
Donc tout a l'air d'être comme je le pensait, c'est cool.

_________________
[Résolu] Problème réseau - Deadlock Runningpotato1[Résolu] Problème réseau - Deadlock TvF6GED [Résolu] Problème réseau - Deadlock MdetltS
Revenir en haut Aller en bas
Contenu sponsorisé





[Résolu] Problème réseau - Deadlock Empty
MessageSujet: Re: [Résolu] Problème réseau - Deadlock   [Résolu] Problème réseau - Deadlock Empty

Revenir en haut Aller en bas
 
[Résolu] Problème réseau - Deadlock
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: