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

Auteur Sujet: [RÉSOLU] Module Network ne fonctionne pas avec OS X / Xcode  (Lu 3135 fois)

0 Membres et 1 Invité sur ce sujet

AnthonyMew

  • Invité
[RÉSOLU] Module Network ne fonctionne pas avec OS X / Xcode
« le: Octobre 28, 2016, 11:55:49 pm »
Bonjour à tous,  ;)

Je suis en ce moment en train de réaliser un jeu avec la SFML et Xcode, et j'ai un gros problème concernant la partie réseau : J'ai l'impression qu'aucune fonction de connexion ne marche. J'ai commencé avec sf::TcpSocket, et avec le code d'exemple que j'ai rapidement repris :

#include <iostream>

#include <SFML/Network.hpp>

    int main() {
    sf::TcpSocket Socket;
    std::cout << "Statut de connexion : ";
    sf::Socket::Status Status =Socket.connect("127.0.0.1", sf::TcpSocket::Anyport);
    std::cout << Status;
    return 0;
}
 

(Sachant que le problème est exactement le même qu'elle que soit l'IP ou le port)

Le problème est que le code retourne systématiquement 4, ce qui correspond, d'après la documentation SFML à "Error". J'ai essaye avec les sockets UDP et j'ai le même problème.
Ensuite, j'ai tenté de faire une connexion HTTP, et en me connectant sur une page de mon site web. (Page testé avant et qui fonctionne sans problème, qui enregistre l'IP et la date de la connexion dans la base de données à chaque affichage, ce qui me permet de vérifier dans la base de donnée que mon application SFML à bien chargé la page) Malheureusement, la fonction Response.getStatus() renvoie 1000, ce qui correspond à InvalidResponse, (Response is not a valid HTTP one) d'après la documentation du site. Je ne poste pas de code, mais j'ai quasiment le même que le tutoriel officiel. Je précise que j'ai OS X El Capitan, Xcode 7.3.1 et que j'utilise la SFML 2.3. Evidemment, la connexion internet était parfaitement fonctionnelle lors de mon test.
Merci d'avance pour vos réponses.  :)
« Modifié: Novembre 02, 2016, 07:46:38 pm par AnthonyMew »

Hiura

  • SFML Team
  • Hero Member
  • *****
  • Messages: 4321
    • Voir le profil
    • E-mail
Re : Module Network ne fonctionne pas avec OS X / Xcode
« Réponse #1 le: Novembre 01, 2016, 08:43:32 pm »
Quand tu tentes d'ouvrir une connection TCP avec le serveur, tu utilises quoi comme code du côté serveur ? Et pour la version HTTP, que renvois exactement le serveur ? Sans setup & code complet, c'est dur de mettre le doigts sur le vrai problème.

(PS: tu auras p-ê plus de réponse, ou de meilleures réponses, sur le forum anglais...)
SFML / OS X developer

AnthonyMew

  • Invité
Re : Module Network ne fonctionne pas avec OS X / Xcode
« Réponse #2 le: Novembre 01, 2016, 09:42:49 pm »
Bonsoir,

Tout d'abord, merci pour cette réponse.
Je n'ai pas testé de code niveau serveur, car si le message n'est pas envoyé avec sf::TcpSocket, le serveur, peu importe le code, ne va rien recevoir.

Ensuite, pour la version HTTP, je me suis rendu compte que mon problème ne se présente pas à chaque fois, par
exemple si je fais une connexion vers un site comme cela :

#include <iostream>

#include <SFML/Network.hpp>

    int main() {
    sf::Http Http("http://www.sfml-dev.org");
    sf::Http::Request Request;
    sf::Http::Response Response =Http.sendRequest(Request);
    std::cout << Response.getStatus();
    }
 

Alors le résultat affiché est bien 200, ce qui signifie qu'il n'y a pas eu de problèmes. Par contre, si je redirige vers une sous-page, comme http://www.sfml-dev.org/changelog.php, alors le résultat est 1000, ce qui correspond à une " InvalidResponse" ?

Et oui, je crois que je vais aller voir sur le forum anglais...
Merci.  :)

Hiura

  • SFML Team
  • Hero Member
  • *****
  • Messages: 4321
    • Voir le profil
    • E-mail
Re : Module Network ne fonctionne pas avec OS X / Xcode
« Réponse #3 le: Novembre 02, 2016, 11:34:52 am »
Ça marche bien chez moi.

#include <iostream>

#include <SFML/Network.hpp>

int main() {
    sf::Http Http("http://www.sfml-dev.org");
    sf::Http::Request Request("changelog.php");
    sf::Http::Response Response = Http.sendRequest(Request);
    std::cout << Response.getStatus();
    return 0;
}

Peut-être as-tu mis la sous-page dans le host name ?
SFML / OS X developer

AnthonyMew

  • Invité
Re : Module Network ne fonctionne pas avec OS X / Xcode
« Réponse #4 le: Novembre 02, 2016, 07:45:06 pm »
Oui voila, ça marche enfin. J'avais fait :

 sf::Http Http("http://www.sfml-dev.org/changelog.php");

Ce qui posait problème. Merci beaucoup.  ;D