Отправлять и получать UDP с веб-страницы - PullRequest
1 голос
/ 04 марта 2012

Мне нужно отправить (возможно, получить) некоторые данные с веб-страницы PHP на локальное программное обеспечение.

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

Есть ли способ сделать? javascript activeX или флэш-библиотека или что-то

Программное обеспечение = VOIP SoftPhone

Веб-страница PHP = CRM

Все, что я хотел, - это сделать кнопку для вызова и, если возможно, получить длительность вызова.

1 Ответ

1 голос
/ 04 марта 2012

Обычно для чтения UDP-сокетов с помощью PHP вам нужно что-то вроде:

$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($sock, $local, $port) or die('Could not bind to address');

while(1) {
    echo socket_read($sock,1024);
}

socket_close($sock);

И для отправки:

$frame = array(
    array(1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1),
    array(1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1),
    array(1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1),
    array(1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1),
    array(1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1),
    array(1,1,0,1,1,0,1,1,0,1,1,0,1,1,0,1,1,1),
    array(1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1),
    array(1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1)
);

send_frame($frame, 1500);

/**
 * Sends 18x8 MCUF-UDP packet to target host.
 *
 * see also:
 * wiki.blinkenarea.org/index.php/MicroControllerUnitFrame
 *
 * @param array    $frame 18x8 '0' or '1'
 * @param int    $delay delay in msec
 * @param string    $host target host
 * @param int    $port target port (udp)
 */
function send_frame($frame, $delay, $host="192.168.0.23", $port=2323) {
    $header = "\x23\x54\x26\x66\x00\x08\x00\x12\x00\x01\x00\xff";
    $buf = $header;
    for ($i=0;$i<8;$i++) {
        for ($j=0;$j<18;$j++) {
            if ($frame[$i][$j]) {
                $buf.="\xff";
            } else  {
                $buf.="\x00";
            }
        }
    }
    $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
    socket_sendto($socket, $buf, strlen($buf), 0, $host, $port);
    socket_close($socket);
    usleep($delay*1000);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...