2017-03-13 5 views
-1

J'ai besoin de connecter un client PHP à mon serveur qui fonctionne à partir de la bibliothèque SFML Network. Je peux vous y connecter avec Android TCP, mais en PHP, je reçois des trucs bizarres qui se passe, regardez les photos ci-dessous:Connectez le socket PHP à SFML

simple server

php client

La bizarrerie je reçois une fois que je charge la page php:

php page

Comme dit précédemment, je peux me connecter parfaitement bien avec Android, et envoyer tout ce que je veux, et le serveur répondra avec « Nouvelle connexion » et « wh envoyé client atever ". Je ne sais pas si cela a à voir avec la formation de php ou quoi que ce soit? Je suis coincé depuis longtemps et je ne trouve rien à ce sujet. Si vous avez besoin d'autres informations ou code que je peux envoyer.

Répondre

0

Lorsque vous avez un tableau et que vous l'imprimez, le tableau se décompose en un pointeur qui est ce qui est imprimé. std::string[100] ne résoudra pas votre problème, en fait ce n'est pas ce que vous voulez. Les données sur le réseau sont envoyées en octets, donc vous voulez les capturer comme char[100]. Une fois que vous avez reçu les données dans votre tableau, assurez-vous de faire message[size] = '\0' qui met fin à votre tableau char et vous permet de l'utiliser en toute sécurité comme une chaîne qui peut être faite avec std::string(message, size).

+0

Je n'utilise pas sf :: Packet, comme je l'ai dit, cela fonctionne très bien quand Android se connecte avec les prises Android. J'envoie une chaîne d'Android et le serveur la récupère, et la met dans un char [] et peut la lire très bien. Peut-être qu'il y a un moyen en PHP pour convertir la chaîne php en chaîne de caractères, ce que j'ai fait dans android avant d'envoyer –

+0

Je vois que mon code montre que j'essaie d'obtenir une chaîne directement pas un tableau char [], mais c'était juste un test, j'ai utilisé char [] pas std :: string –

+0

J'ai édité ma réponse. J'espère que c'est plus utile. – Gambit