2012-01-31 2 views
0

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

ответ

2

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

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

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

1

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

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

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

+0

Не работает ли соединение HTTP-соединения с аккумулятором в телефоне Android? – iNan

+0

не более, чем любое другое TCP-соединение, которое я думаю. – mvds

Смежные вопросы