2011-02-28 22 views
1

我想在PHP中创建一个简单的UDP客户端服务器示例,但是我遇到了一个错误。在PHP中创建简单的客户端/服务器UDP示例

这是客户:

$fp = stream_socket_client("udp://192.168.0.12:12478", $errno, $errstr); 

if ($fp) 
{ 
     fwrite($fp, "TEST 1 TEST 2 TEST 3"); 
     $buf = fgets($fp); 
     var_dump($buf); 
     fclose($fp); 
} 

这是服务器:

$socket = stream_socket_server("udp://192.168.0.12:12478", $errno, $errstr, STREAM_SERVER_BIND); 
if ($socket) 
{ 
    while ($conn = stream_socket_accept($socket)) { 
    fwrite($conn, date("D M j H:i:s Y\r\n")); 
    fclose($conn); 
    } 
    fclose($socket); 
} 

所有执行结尾:

Warning: stream_socket_accept(): accept failed: Operation not supported 

基本上,这是所有PHP给出的例子文件,但我不知道它有什么不对。任何帮助是极大的赞赏。

谢谢。

回答

2

这是不应该与UDP服务器套接字所使用的非常同一页

警告
此功能上的警告。相反, 使用stream_socket_recvfrom()和 stream_socket_sendto()。

+0

好。用“stream_socket_recvfrom()”,一切都OK! – Litre 2011-02-28 10:51:14

0

根据documentation:“你不能让从猪耳朵丝piurse”

stream_socket_connect适用于流,无数据报数据包。 recvfrom在这种情况下更有可能工作。