Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Question générale sur le réseau local  (Lu 3316 fois)

0 Membres et 1 Invité sur ce sujet

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Question générale sur le réseau local
« le: Septembre 07, 2013, 11:42:09 am »
Salut à tous,

Une question un peu générale, mais en sachant que j'utilise uniquement les fonctions réseau
de la SFML.

J'ai un cas simple de petit jeu multijoueur avec un serveur et des applications clientes.

Ma question est la suivante : est-ce que plusieurs applications clientes peuvent être lancées sur le même ordinateur en même temps sans interférer ?
En effet elles auront la même adresse locale... et de fait je n'ai aucun problème tant que j'ai sur le même ordinateur le serveur et 1 client qui tournent en même temps, mais dès que je passe à 2 clients ça foire.

Si je reste trop vague n'hésitez pas à me demander des détails essentiels pour m'aider.

Merci d'avance !  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Question générale sur le réseau local
« Réponse #1 le: Septembre 07, 2013, 12:07:45 pm »
Ca dépend comment tu gères tes clients. Si c'est par adresse IP, forcément ça va bloquer ;)

Mais normalement ça marche bien, chaque client est sur son propre port, y a pas de problème a en lancer autant que tu veux sur la même machine.
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Question générale sur le réseau local
« Réponse #2 le: Septembre 07, 2013, 07:43:03 pm »
Ah je vois :)

J'ai une fonction pour ajouter un client quand le serveur détecte une connexion :

void ajouterClient(sf::TcpSocket *nouveauClient)
{
    cout << "Un nouveau client s'est connecte" << endl;
    cout << "Adresse : " << nouveauClient->getRemoteAddress() << endl;

    m_selector.add(*nouveauClient);
    m_clients.push_back(nouveauClient);

    nouveauClient->setBlocking(true);

    sf::Packet paquet;
    paquet << m_clients.size()-1;
    if(nouveauClient->send(paquet) != sf::Socket::Done)
    {
        // erreur
    }

}

Je ne pense pas faire intervenir les adresses IP. Ce qui m'intrigue c'est que les soucis n'arrivent que quand je lance un autre client sur le même ordinateur.
Dès que j'ai la possibilité j'essayerai avec 2 ordis pour voir  :)

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Question générale sur le réseau local
« Réponse #3 le: Septembre 07, 2013, 08:50:46 pm »
Et si tu commençais par le commencement ? Qu'est-ce qui ne marche pas exactement ?
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Question générale sur le réseau local
« Réponse #4 le: Septembre 08, 2013, 11:39:43 am »
Hélas je crains que je sois le seul à pouvoir m'aider (à moins de vous balancer tout mon code :P)
Apparemment c'est le 2ème client qui se fige, si ça se trouve ce n'est pas le réseau qui pose problème, faut que j'enquête...
Merci pour l'aide en tout cas :)
« Modifié: Septembre 08, 2013, 11:48:38 am par Macrob »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Question générale sur le réseau local
« Réponse #5 le: Septembre 08, 2013, 11:51:37 am »
Juste un conseil : n'envoie pas une tuile par paquet, c'est extrêmement inefficace :o
Construis un paquet contenant tout ce que tu veux envoyer, puis fais un seul envoi.
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Question générale sur le réseau local
« Réponse #6 le: Septembre 08, 2013, 01:31:59 pm »
Ah merci beaucoup pour le conseil !
Donc même si j'ai un tableau de 2000 tuiles (en fait des unsigned int), je peux l'envoyer en un seul paquet ?

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Question générale sur le réseau local
« Réponse #7 le: Septembre 08, 2013, 01:45:47 pm »
Ben oui. Pourquoi pas ?
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Question générale sur le réseau local
« Réponse #8 le: Septembre 08, 2013, 08:00:55 pm »
Je sais pas, ça me paraît très gros  ;D
C'est là que je vois bien les limites quand on essaye d'apprendre seul : on passe à côté de pas mal de choses !

 

anything