Добрый день.
Есть ли возможность принять некоторые переменные с помощью PHP пришедшие на сервер по UDP протоколу?
Т.е. по TCP (вернее по HTTP) принимаем/передаем, например, GET'ом, а вот как сделать подобное, но по UDP.
Спасибо.
З.Ы. передающая сторона - GPRS модем.
1. Alt.F4 - 25 Апреля, 2011 - 21:06:25 - перейти к сообщению
2. Мелкий - 25 Апреля, 2011 - 21:25:03 - перейти к сообщению
http://ru.php.net/manual/en/func...ocket-create.php и компания.
И http://ru.php.net/manual/en/book.stream.php посмотрите, не помню, умеет ли он UDP или только TCP.
И http://ru.php.net/manual/en/book.stream.php посмотрите, не помню, умеет ли он UDP или только TCP.
3. Alt.F4 - 25 Апреля, 2011 - 21:41:16 - перейти к сообщению
socket и компания просит айпи для соединения по UDP. Это исключено, у GPRS модема динамический айпи, а использовать dyndns нет возможности.
По streams ничего не нашел...
По streams ничего не нашел...
4. Haron - 26 Апреля, 2011 - 04:23:19 - перейти к сообщению
Ну во-первых - у Вас не динамический IP, а NAT - ибо модем GPRS.
Во вторых на роутере провайдера - должен быть проброшен порт, для приёма UDP-пакетов. UDP инкапсулирован в IP, и необходимость доступного порта никто не отменял.
Так что с GPRS-модемом - забейте и не парьтесь.
(Добавление)
Мда, и ещё, покурите про протокол UDP на википедии, ибо "использование UDP для обхода ограничений провайдера" - не более чем миф.
Во вторых на роутере провайдера - должен быть проброшен порт, для приёма UDP-пакетов. UDP инкапсулирован в IP, и необходимость доступного порта никто не отменял.
Так что с GPRS-модемом - забейте и не парьтесь.
(Добавление)
Мда, и ещё, покурите про протокол UDP на википедии, ибо "использование UDP для обхода ограничений провайдера" - не более чем миф.
5. Alt.F4 - 30 Апреля, 2011 - 12:32:45 - перейти к сообщению
Цитата:
Так ведь мне передавать надо с GPRS-модема, а не принимать.на роутере провайдера - должен быть проброшен порт, для приёма UDP-пакетов.
Что-то никак не выходит запустить соккет UDP на PHP.
Или не те порты использую. У хостера открыто мало, но в принципе какая разница если толкать все в 80?
Пример взял отсюда http://ua.php.net/manual/en/func...ocket-server.php .
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?php
- $socket = stream_socket_server("udp://'IP_сервера':80", $errno, $errstr, STREAM_SERVER_BIND);
- if (!$socket) {
- die("$errstr ($errno)");
- }
- do {
- $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
- echo "$peer\n";
- stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
- } while ($pkt !== false);
- //Затем $pkt сохраняю в БД
- ?>
Но в результате ничего в БД не появляется...
Подскажите пожалуйста, где ошибка.
Спасибо.