2012-03-04 5 views
1

PHP 웹 페이지에서 로컬 소프트웨어로 데이터를 보내야 할 수도 있습니다.웹 페이지에서 UDP를 보내고 받으십시오.

이 소프트웨어는 수신 및 UDP 포트 1987

를 통해 데이터를 보낼 수 있습니다 할 수있는 방법이 있나요? 자바 스크립트 액티브 X 나 플래시 라이브러리 또는 뭔가

소프트웨어 = 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

고맙습니다, 메신저 아직 시도하지하지만 난 클라이언트 측에 필요가 있다고 생각 해결책. 사용자가 버튼을 클릭하여 클라이언트 측 소프트웨어를 트리거하려고합니다. –

관련 문제