我想获取UDP数据包,所以我编写了以下代码:
<?PHP
error_reporting(-1);
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 2055);
$from = '192.168.1.2';
$port = 2055;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);
while(1==1){
echo "Received $buf from remote address $from and remote port $port" . PHP_EOL;
}
?>
当我用PHP命令运行它时,我得到了这个错误:
PHP Parse error: syntax error, unexpected single-quoted string "127.0.0.1", expecting ")" in C:\Users\ELAY\php on line 7
我用PHP 8、7.5、5.6进行了尝试
1条答案
按热度按时间dohp0rv51#
试试这边
在这段代码中,socket_bind函数被调用的地方有一个语法错误。这个函数的第二个参数应该是一个包含IP地址或主机名的字符串,但在这段代码中它是一个数字零。这将导致一个解析错误,因为PHP需要一个字符串,但它收到的是一个数字值。
若要修正此错误,您必须将socket_bind函数的第二个参数变更为有效的IP位址或主机名称。例如,您可以使用'127.0.0.1'将通信端系结至localhost位址,或者您可以使用网络的特定IP位址或主机名称。
修复此语法错误后,您的代码应该能够运行而不会遇到分析错误。然后,您可以继续从套接字读取数据并根据需要处理它。