2011-02-28 18 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在這種情況下更有可能工作。