Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP cкрипт не видит определенные udp

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 23:37 04-10-2013 | Исправлено: maxus5578, 11:41 05-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578
протокол udp не поддерживается в file_get_contents
http://php.net/manual/en/wrappers.php
он вообще другого уровня OSI, по сравнению с http, ftp и аналогичными - транспортный
 
уберите @ перед file_get_contents и увидите сообщение об ошибке.
более того, udp не создает туннеля, по сравнению с http, который идет внутри tcp протокола, то есть ответа в том же сеансе связи нет, как и нет гарантии, что udp пакет дойдет до места назначения.
 
и чтобы получать ответ - нужно слушать сокет, на который приходит ответный udp пакет.
 
ps: почитайте http://stackoverflow.com/q/687765/1164491 и http://ru.wikipedia.org/wiki/UDP

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:01 05-10-2013 | Исправлено: Cheery, 00:05 05-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Я убрал @ и не какой ошибки не выдало,скрипт также не видит udp,в логах нечего.
 
Что же делать?
 
На счет сокетов. В расширения для php я включил сокеты. Или нужно как то по другому делать?  

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 11:40 05-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ссылки на примеры ведь дали..  
Вместо file_get_contents использовать сокеты "руками".
При помощи
Код:
stream_socket_recvfrom

или

Код:
$socket = socket_create(AF_INET, SOCK_DGRAM, 0) or die("Could not create socket\n");  

 

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 20:27 05-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxus5578

Цитата:
и не какой ошибки не выдало,скрипт также не видит udp

там warning, не совсем ошибка.. значит отключено у вас отображение
 
Будет такое

Цитата:
Warning: file_get_contents() [function.file-get-contents]: Unable to find the wrapper "udp" - did you forget to enable it when you configured PHP? in ...
Warning: file_get_contents(udp://адрес) [function.file-get-contents]: failed to open stream: Invalid argument in ..

 

Цитата:
Или нужно как то по другому делать?  

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:57 05-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 10:22 06-10-2013 | Исправлено: maxus5578, 10:24 06-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ошибка где то в этом коде?  
 

 
Ошибка в том, что конструкция из Вашего кода

Код:
                if ( ! $scrape_data = file_get_contents( str_ireplace( array( 'udp://', '/announce'), array( 'http://', '/scrape', '/' ), $tracker ) . '?info_hash=' . urlencode( $packed_hash ) ) )    

не работает с UDP.  
 
Не потому, что file_get_contents не работает с UDP, а потому что после обработки str_ireplace вместо udp:// будет http://

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 11:50 06-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
esche
и что делать,я вряд ли смогу сделать

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 12:11 06-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
и что делать,я вряд ли смогу сделать
 
А почему нужно что-то делать? Вообще, с чего Вы взяли, что там ошибка?

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 12:14 06-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
esche
ну ошибка в написании кода для считывании информации с udp
Выше вы говорили о секетах,значит нужно что то переписывать

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 12:27 06-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Выше вы говорили о секетах,значит нужно что то переписывать
 

А если я скажу всё удалить, будете удалять?
 
Указанный код не использует (почему) обращение к udp, поэтому "переписывать на сокеты" не нужно. Боюсь, Cheery поторопился с выводом, увидев file_get_contents и udp по соседству.

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 12:35 06-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хорошо, я понял.
 
Еще один вопрос.
Если данный код не работает с udp,то приблизительно какой за длинный код будет, ну чтоб я знал какую цену попросит скриптер.

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 12:41 06-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если данный код не работает с udp,то приблизительно какой за длинный код будет, ну чтоб я знал какую цену попросит скриптер.
 

Вы уверены, что точно знаете, какое ТЗ нужно составить для "скриптера"? Ну т.е. что стратегически Вы не просчитались? Быть может, лучше объяснить ему терминами которые Вы сами понимаете "что есть и что надо".. мол не работает такая штука.. а должно работать так.  
 
* это примерно как в автосервис приехать и сказать "У меня машина не тянет - отрегулируйте клапана". Они отрегулируют, а машина всё также не будет ехать из-за другой фигни.  

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 13:10 06-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
esche
спасибо,объясню своими терминами =)

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 15:30 06-10-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
esche

Цитата:
Боюсь, Cheery поторопился с выводом, увидев file_get_contents и udp по соседству

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:39 06-10-2013
maxus5578

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
понятно,буду обращаться к скриптерам,бесплатно явно кто то сделает

Всего записей: 118 | Зарегистр. 12-09-2013 | Отправлено: 22:55 06-10-2013
esche

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я не поторопился.  

ОК (я вообще, про udp+file_get_contents отсюда)
 

Цитата:
дело в том, что не каждый трекер, что настроен на udp, работает с http.  
 

Только это не совсем поиск ошибки в указанном коде.. Скорее архитектура/взаимодействие (+телепатия.. т.к. где конкретно может быть ошибка /даже если трекер работает нормально/ вслепую сказать затруднительно, по крайней мере мне)

Всего записей: 49 | Зарегистр. 03-05-2013 | Отправлено: 23:32 06-10-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP cкрипт не видит определенные udp


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru