Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как на Php можно осуществить прием данных через интернет?

15K
24 мая 2006 года
TVC
11 / / 10.05.2006
Приветствую всех!

Вопрос вызван необходимостью организации приема потока данных заране неизвестного размера от удаленного клиента через сеть со стороны сервера по протоколу HTTP. К примеру, как принять текстовый файл по порциям? Подходят ли для этого сокеты? Но вот как при этом можно учесть таймауты и обрывы связи и гарантировать получение файла?

Как-то так в сыром виде:

<?

$=fsockopen( $client_addr, 80);

fputs($s, "GET / HTTP/1.0\n\n");

while (!feof($s)) echo fgets($,200);

fclose($s);

?>

Спасибо заранее за любую активность!
2
24 мая 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by TVC
Приветствую всех!

Вопрос вызван необходимостью организации приема потока данных заране неизвестного размера от удаленного клиента через сеть со стороны сервера по протоколу HTTP. К примеру, как принять текстовый файл по порциям? Подходят ли для этого сокеты? Но вот как при этом можно учесть таймауты и обрывы связи и гарантировать получение файла?

Как-то так в сыром виде:

<?

$=fsockopen( $client_addr, 80);

fputs($s, "GET / HTTP/1.0\n\n");

while (!feof($s)) echo fgets($,200);

fclose($s);

?>

Спасибо заранее за любую активность!


гарантировать целостность файла можно только на прикладном уровне. т. е. - посылать перед посылкой файла его размер, считать контрольные суммы и т. п.

15K
24 мая 2006 года
TVC
11 / / 10.05.2006
Спасибо за ответ!:) А может ли сервер не знать размер файла изначально, а получить его в массиве $_GET, за формирование которого отвечает приложение на клиенте, а после осуществления передачи, определить размер полученного файла и сопоставить с тем размером, который пришел заранее в массиве $_GET?
2
24 мая 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by TVC
Спасибо за ответ!:) А может ли сервер не знать размер файла изначально, а получить его в массиве $_GET, за формирование которого отвечает приложение на клиенте, а после осуществления передачи, определить размер полученного файла и сопоставить с тем размером, который пришел заранее в массиве $_GET?


Это я не скажу. не разработчик. одно замечание - а почему нужен именно HTTP протокол?

15K
24 мая 2006 года
TVC
11 / / 10.05.2006
На самом деле он просто у меня в книге описан, а так - полная свобода!:)
15
24 мая 2006 года
shaelf
2.7K / / 04.05.2005
Цитата:
Originally posted by TVC
Спасибо за ответ!:) А может ли сервер не знать размер файла изначально, а получить его в массиве $_GET, за формирование которого отвечает приложение на клиенте, а после осуществления передачи, определить размер полученного файла и сопоставить с тем размером, который пришел заранее в массиве $_GET?


Только не через GET, а через POST (имхо так удобней). Тупо создаёшь массив (как уже сам и сказал и передаёшь), за ним сам файл. Если хочешь немного покапаться в этом, тто возьми любой скрипт для закачки и посмотри на его устройство. 99% вопросов сразу отпадёт.

15K
25 мая 2006 года
TVC
11 / / 10.05.2006
Цитата:
Originally posted by shaelf
Только не через GET, а через POST (имхо так удобней). Тупо создаёшь массив (как уже сам и сказал и передаёшь), за ним сам файл. Если хочешь немного покапаться в этом, тто возьми любой скрипт для закачки и посмотри на его устройство. 99% вопросов сразу отпадёт.



Понятно, посмотрю. Спасибо!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог