2012-03-18 2 views
2

В одном из моих проектов сервер PHP успешно обслуживает php-клиент через сокеты, но когда я пытаюсь использовать клиент iPhone с помощью NSStreams на этом сервере PHP, клиент подключается, но если Я отправляю строку с клиента на сервер, в xcode появляется сообщение об ошибке, что соединение нарушено.Подключение от клиента iPhone к серверу PHP через сокеты

Если я использую тот же iPhone-клиент для подключения к серверу, работающему на Python, он устанавливает соединение, и строки читаются/записываются без каких-либо проблем.

Можете ли вы это понять? Если какой-то образец или учебник по приложениям PHP/iOS на сокетах, то я буду обязан.

ответ

2

привет вы можете использовать WebSocketServer расположен на http://code.google.com/p/phpwebsocket/ и на Iphone Clien http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-servert

+0

Благодарим за ответ, вам нужно проверить на веб-сайтах на стороне сервера php. Однако мои исследования показывают, что он поддерживается только в Chrome и ограниченная поддержка в нескольких других браузерах, поэтому при использовании этого подхода могут возникнуть проблемы с поддержкой платформы. Клиент, о котором вы упомянули, я уже понял, что тот, который я упоминал, работает отлично, но только с Python Server. Отличная статья. Еще раз спасибо за Ваш ответ. – Yoku

+0

Эта проблема была решена, так как я заменил клиента на основе потока raw-сокетами, и теперь я могу подключаться и получать доступ к сокетам сокета PHP-сокета от клиента сокета iPhone. – Yoku

0

я не могу перепечатывать мой код здесь, потому что так считает спамом, чтобы повторить свой ответ.

выходить this sample code and tutorial link. работает как шарм и на самом деле прост в реализации, менее 3 минут, и вы встаете и делаете (если у вас есть готовый сервер сокетов).

как правило, php не может быть лучшим решением для сервера сокетов. Мне нравится работать с C++ или python лучше. просто кричите, если вам нужен пример кода для сервера сокетов с использованием C++.

также, ОЧЕНЬ ОЧЕНЬ ОЧЕНЬ важно проверить, есть ли на вашем сервере открытые порты. если вы не используете свой собственный сервер, скорее всего, ваш хостинг-пакет НЕ открывает порты. для этого необходим виртуальный частный сервер. в настоящее время я настоятельно рекомендую сервер AWS EC2 от Amazon.

Если у вас возникли трудности с этим, я могу дать вам пару подтасовки в правильном направлении.