Создание TCP-сервера с помощью fsockopen? - PullRequest
0 голосов
/ 31 января 2012

Моя веб-хостинговая компания разрешает создавать сокеты только с помощью функции fsockopen. Я создаю приложение для Android, которому для передачи сообщения требуется TCP-сервер. Поэтому мой вопрос: возможно ли создать TCP-сервер с помощью fsockopen и без использования socket_create ?. Любая помощь или предложения с благодарностью.

Ответы [ 2 ]

2 голосов
/ 31 января 2012

fsockopen() создает клиентские сокеты только . Невозможно создать прослушивающий сокет с этой функцией.

Единственные способы создания прослушивающих (серверных) сокетов TCP в PHP - это расширение Streams (см. stream_socket_server()) - вы можете обнаружить, что это также доступно - и расширение сокетов , которое с меньшей вероятностью будет доступно.

Даже если вы можете создать прослушивающий сокет, вы можете обнаружить, что не можете ничего с ним сделать, если, помимо прочего, у вас нет контроля над брандмауэром сервера.

1 голос
/ 31 января 2012

Нет, это невозможно, поскольку fsockopen можно использовать только для инициирования соединения.

Если вы настаиваете на использовании TCP-соединения не по HTTP, вы можете позволить серверу подключиться к вашему серверу.клиент.Но это может нарушить работу клиентов за брандмауэрами (NAT).

В противном случае вы можете просто использовать HTTP, который по крайней мере позволяет передавать данные с сервера на клиент.(отключив буферизацию вывода и, возможно, потребовав дополнительные flush вызовы)

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