2012-03-04 210 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