Java-клиент и PHP-сервер с сокетами - PullRequest
2 голосов
/ 02 августа 2011

Я искал часы уже сейчас, и мне просто нужно несколько советов о моей ситуации.Я хочу создать простую клиент-серверную программу.Первоначально я планировал сделать их обоих в Java, но пару недель назад я купил учетную запись общего хостинга у Godaddy, и они отключили Java для новых учетных записей.Итак, я думаю, что мой следующий лучший выбор, и на языке, с которым я немного знаком, это PHP.Я следовал учебнику по сокетам с сайта java и сделал клиент java.Я пытался преобразовать серверную часть примера в PHP.По-видимому, godaddy позволит вам использовать fsockopen () для сокетов на общем сервере.Я думаю, что мне нужно знать, это возможно, и как я могу запустить файл php после его создания?В примере сказано, что мне нужно запустить серверную программу перед тем, как запустить клиент.Я не уверен, как это сделать.

Ответы [ 2 ]

3 голосов
/ 02 августа 2011

Хотя я не могу быть на 100% уверен в этом, я собираюсь пойти дальше и сказать, что это, вероятно, не сработает. Сокеты могут быть более дорогой стороной для хостинговой компании, так что скорее всего, они будут среди первых вещей, которые будут сокращены. Когда вам нужно что-то, действующее в качестве сервера сокетов, вам обычно нужен длительный процесс, который имеет доступ к определенным портам на машине, на которой выполняется соединение. Поскольку большинство хостинговых компаний создают среду chroot для каждого из своих клиентов, клиентам отказывают в доступе к безопасности, который им необходим для работы с подлинными сокет-серверами.

Мой опыт работы с GoDaddy в качестве хостинг-компании заключается в том, что они, похоже, действуют в соответствии с этим мнением. Из того, что я могу сказать, GoDaddy позволит PHP читать сокетов и действовать как сокет клиент . Это согласуется с их допуском fsockopen. Я искренне сомневаюсь, что это то, что вам нужно.

Если у вас нет реальной необходимости передавать серверу информацию о доставке клиенту (вместо того, чтобы иметь данные запроса клиента от сервера), тогда вам гораздо лучше использовать стандартный HTTP-запрос и использовать XML или JSON. по проводам (XML и JSON достаточно хорошо поддерживаются в PHP). Если у вас действительно есть , чтобы иметь сокет-сервер, я бы пошел на webmasters.stackexchange.com и посмотрел, можете ли вы найти рекомендации, подобные этому .

Если вы все-таки решите, что вы хотите создать PHP Socket Server, после всего этого есть руководство по от одного из сотрудников Zend. Они довольно резкие, так что, надеюсь, этого будет достаточно, чтобы помочь вам преобразовать сценарий (если вы так решили)

2 голосов
/ 02 августа 2011

Я бы НЕ использовал сырые сокеты для этого. Вместо этого используйте JSON поверх HTTP, потому что PHP поддерживает обработку HTTP без какого-либо специального рассмотрения. Запустить ваши страницы PHP на размещенном экземпляре apache в GoDaddy или Amazon EC2 очень просто. Конечно, вы можете использовать сокеты, но на самом деле очень немногие люди делают это. Все больше людей обрабатывают и отвечают на HTTP с помощью PHP. Это означает, что вы найдете гораздо больше людей, которые могут помочь ответить на ваши вопросы, если вы будете следовать за стадом здесь. Также с обеих сторон есть библиотеки API для этого. Использование сокетов сопровождается множеством вещей, которые вам придется делать самостоятельно или страдать от всех странных ошибок, которые возникают при работе с необработанными сокетами в первый раз.

Кроме того, обработка JSON легко поддерживается как Java, так и PHP, поэтому очень легко отправлять данные клиенту и серверу, используя это.

Что ж, вы, безусловно, можете использовать PHP на бэкэнде и Java на веб-интерфейсе, если хотите, но я бы посоветовал аннулировать вашу учетную запись Go-Daddy и получить учетную запись Amazon EC2 / S3, потому что вы получаете полноценную машину, предназначенную для чего угодно хочу надеть это. Поэтому, если вы хотите использовать Java на бэкэнде, вы можете просто установить JDK, Tomcat и т. Д. Самостоятельно на экземпляр Amazon, и все готово. Вы также можете разместить там PHP. Существует даже множество экземпляров AMI, предварительно установленных для стеков Java или PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...