2012-03-04 251 views
1

我需要發送(也許接收)一些數據從PHP網頁到本地軟件。從網頁發送和接收UDP

這個軟件可以接收並通過UDP端口1987

發送數據有什麼辦法呢? JavaScript的ActiveX或Flash庫或東西

軟件= VOIP軟電話

PHP網頁= CRM

所有我想要的是實際上使一個按鈕來調用,如果可能接收呼叫的長度。

回答

1

Basicly用PHP讀取UDP套接字你需要的東西,如:

$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); 
} 
+0

thanx您的回答,我不是儘量,但是我想我需要客戶端解。我試圖當用戶點擊一個按鈕,觸發客戶端軟件 – 2012-03-04 12:44:06