我正在尝试在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文档中给出的示例,但我无法弄清楚它有什么问题。非常感谢任何帮助。
感谢。
答案 0 :(得分:3)
这是同一页上的警告
警告
此功能不应与UDP服务器套接字一起使用。代替, 使用stream_socket_recvfrom()和 stream_socket_sendto()。
答案 1 :(得分:0)
根据documentation:“你不能用母猪的耳朵做丝绸”“
stream_socket_connect适用于STREAMS,而非数据报包。 recvfrom更有可能在这种情况下工作。