Фрилансеры предложат решение вашей задачи уже через несколько минут!

Публикация заказа на фриланс бирже не займет много времени.

8 лет назад
Александр М.
41 год, Россия
12 лет в сервисе
Был онлайн 3 года назад
8 лет назад

Необходимо написать функцию-обертку для socket_ функций, реализующую следующий алгоритм :
int HTTP_GET_Client ($url,$timeout, $result, $headers);
1) Подключиться к веб-серверу.
2) Отправить запрос .
3) Вернуть результат.

Требования :
1) реализовано только с использованием функций socket_XXX, без curl, и fsock..
2) реализовано с использованием неблокирующих сокетов - на этапе коннекта, отправки, получения данных, закрытия.
3) жестко проверяются таймауты.
4) поддержка ответа с content-size и без content-size - если указан content-size, то читается в соответствии с ним. Если не указан - пока не будет закрытия сокета со стороны сервера, либо таймаута.
5) $result - хранит в себе бинарные данные - то, что идет после заголовков.
6) $headers - ассоц. массив полученных заголовков.
7) В запросе поддерживается только GET, протокол - HTTP без SSL
8) keepalive не поддерживается.
9) каждый шаг проверяется на ошибку, в случае ошибки - возвращается код ошибки.
10) url: string, timeout: float, milliseconds
11) если часть данных принята, но время истекло == ошибка.
12) код должен быть хорошо документирован т.к. это будет часть публичного модуля.


Для тестирования реализовать однопоточный мини-вебсервер, который выполняет следующие задачи :
1) отвечает на connect с рандомной задержкой в заданном диапазоне (конфигурируется через сорцы)
2.1) после коннекта отдает content-length и остальные заголовки, а само тело отправляет по кусочкам, с задержкой между отправками порций (величина задержки конфигурируется).
2.2) после коннекта отдает заголовки и данные порциями, с задержкой (конфигурируемой), но без content-length.

Выбранный исполнитель
Егор Б.
40 лет, Россия
10 лет в сервисе
Был онлайн 58 минут назад
8 лет назад

$50

2 дня

Отзыв заказчика
Хотелось вначале написать, что все отвратительно. Потому, что "такая корова нужна самому" (с) кто-то из классиков. Но, пожалуй, оставлю эту идею.

Код написан отлично. Выше всяких похвал. Сразу видно, что человек не по наслышке знает все, что у него написано в профиле. Потому, что даже пхпшный код отражает это. Все было сделано в срок и качественно.
Отзыв фрилансера
Никаких проблем с заказчиком на всех этапах работы, все четко и ясно - задание, договор, оплата. Рекомендую.
Егор Б.
40 лет, Россия
10 лет в сервисе
Был онлайн 58 минут назад
8 лет назад
Булавинов А.
32 года, Россия
8 лет в сервисе
Был онлайн 7 лет назад
8 лет назад

Другие заказы в категории «Веб-программирование»

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