Я новичок У меня есть устройство дома, которое измеряет потребление электроэнергии и передает некоторые данные в виде обычного текста, используя UDP и IP, которые я могу указать. Я использую netcat и могу видеть данные, проходящие, когда я укажу свой собственный компьютер дома как целевой IP. Я хотел бы захватить данные и извлечь из него некоторые значения, структура пакетов всегда одна и та же. Есть ли простые в использовании инструменты? Я попытался PHP, но не может использовать любой из примеров, которые я нашел, так например, будет понятно, как хорошо Рониextract data udp port
0
A
ответ
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;
Я видел этот пример и пробовал его. Я использую локальный сервер Apache. using sudo netstat -lpn | grep: 9999 Я вижу этот ответ udp 0 0 127.0.0.1:9999 0.0.0.0:*. Когда я использую Netcat, я получаю данные по 9999, но в этом примере страница просто зависает. – rsegoly
Ошибка в браузере - Ошибка 324 (net :: ERR_EMPTY_RESPONSE): сервер закрыл соединение без отправки каких-либо данных. – rsegoly
@rsegoly Вы используете правильные данные о сервере и порте? –