2017-03-13 5 views
-1

PHP 클라이언트를 SFML 네트워크 라이브러리에서 실행중인 서버에 연결해야합니다.PHP 소켓을 SFML에 연결하십시오.

simple server

php client

나는 내가 PHP 페이지를로드 한 번 얻는 불가사의 : 아래 그림을보고, 나는 안드로이드 TCP로 연결할 수 있지만, PHP에서, 나는 일어나고있는 이상한 물건을 얻을 :

php page

으로 내가 안드로이드와 완벽하게 정상적으로 연결하고, 내가 원하는대로 보내고, 서버가 "새 연결"와 "클라이언트 전송 어로 응답합니다 수, 전에 말했듯 atever ". php formating이나 뭐든지해야하는지 모르겠다. 나는 오랫동안 붙어있어 그것에 대해 아무것도 찾을 수 없습니다. 다른 정보 나 코드가 필요한 경우 보낼 수 있습니다.

답변

0

배열이 있고 그것을 인쇄하면 배열은 인쇄 될 포인터로 붕괴됩니다. std::string[100]은 문제를 해결하지 못합니다. 실제로 원하는 것은 아닙니다. 네트워크상의 데이터는 바이트 단위로 전송되므로이를 char[100]으로 캡처 할 수 있습니다. 배열에 데이터를 받으면 message[size] = '\0'이 null인지 확인하여 문자 배열을 종료하고 안전하게 std::string(message, size)으로 수행 할 수있는 문자열로 사용할 수 있습니다.

+0

안드로이드가 안드로이드 소켓과 연결될 때 제대로 작동한다고 했으므로 sf :: Packet을 사용하지 않습니다. 나는 안드로이드에서 문자열을 보내고 서버가 그것을 해체하고 char []에 넣고 잘 읽을 수있다. 어쩌면 PHP에서 PHP 문자열을 내가 보내기 전에 android에서했던 문자열로 변환하는 방법이 있습니다. –

+0

내 코드가 char [] 배열이 아닌 문자열을 직접 가져 오려고한다는 것을 알 수 있습니다. 그냥 테스트, 나는 char [] std :: string을 사용하지 않았다. –

+0

나는 나의 대답을 편집했다. 잘하면 더 도움이 되길 바랍니다. – Gambit