2013-06-28 3 views
0

Я новичок У меня есть устройство дома, которое измеряет потребление электроэнергии и передает некоторые данные в виде обычного текста, используя UDP и IP, которые я могу указать. Я использую netcat и могу видеть данные, проходящие, когда я укажу свой собственный компьютер дома как целевой IP. Я хотел бы захватить данные и извлечь из него некоторые значения, структура пакетов всегда одна и та же. Есть ли простые в использовании инструменты? Я попытался PHP, но не может использовать любой из примеров, которые я нашел, так например, будет понятно, как хорошо Рониextract data udp port

ответ

0

Вы пробовали функцию socket_recvfrom? Небольшой пример со страницы документации:

<?php 
error_reporting(E_ALL | E_STRICT); 

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); 
socket_bind($socket, '127.0.0.1', 1223); 

$from = ''; 
$port = 0; 
socket_recvfrom($socket, $buf, 12, 0, $from, $port); 

echo "Received $buf from remote address $from and remote port $port" . PHP_EOL; 
+0

Я видел этот пример и пробовал его. Я использую локальный сервер Apache. using sudo netstat -lpn | grep: 9999 Я вижу этот ответ udp 0 0 127.0.0.1:9999 0.0.0.0:*. Когда я использую Netcat, я получаю данные по 9999, но в этом примере страница просто зависает. – rsegoly

+0

Ошибка в браузере - Ошибка 324 (net :: ERR_EMPTY_RESPONSE): сервер закрыл соединение без отправки каких-либо данных. – rsegoly

+0

@rsegoly Вы используете правильные данные о сервере и порте? –