问题描述
所以我一直在尝试这一点,但我不知道哪里出了问题。我看过很多与此相关的文章和教程,但我没有运气。
// echo PHPinfo();
$from = "239.255.73.100";
$port = 1500;
if(!($socket=socket_create(AF_INET,SOCK_DGRAM,SOL_UDP)))
{
$errorcode=socket_last_error();
$errormsg=socket_strerror($errorcode);
die("Couldn't create socket: [$errorcode] $errormsg \n");
}
echo "Socket Created <br>";
//flush_buffers();
if(!socket_set_block($socket)){
$errorcode=socket_last_error();
$errormsg=socket_strerror($errorcode);
die("Couldn't nonblock socket : [$errorcode] $errormsg \n");
}
/* if(!socket_bind($socket,"0.0.0.0",1500)){
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldn't bind socket: [$errorcode] $errormsg \n");
}*/
// echo "socket bount";
//flush_buffers();
socket_set_option($socket,SOL_SOCKET,SO_REUSEPORT,1);
socket_set_option($socket,SO_RCVTIMEO,array("sec"=>1,"usec"=>0));
// socket_set_option($socket,SO_SNDTIMEO,"usec"=>100));
$stat=socket_set_option($socket,MCAST_JOIN_GROUP,array("group"=>"239.255.73.100","interface"=>"eth0"));//,"source"=>$from));
echo $stat;
// echo "Joined Group";
// die("Cant Join Group socket_last_error() socket_strerror(socket_last_error())");
// if (!socket_set_option($socket,IP_MULTICAST_TTL,2)){
// die("can't set TTL". socket_last_error()." - ".socket_strerror(socket_last_error()));
// echo "TTL set to 2";
// }
if(!socket_bind($socket,'0.0.0.0',$port)){
die("Couldn't bind socket: [socket_last_error()]");
}
echo "socket bound <br>";
if(!socket_connect($socket,$from,$port)){
die("Can't Connect" . socket_last_error(). " ". socket_strerror(socket_last_error()));
}else {
echo "socket connected <br>";
}
// socket_recvfrom ()
try{
for($i=0;$i<=5;$i++){
if(is_string(socket_recv($socket,$r,241,0)))
{
echo $r;
// echo(socket_last_error()." & ".socket_strerror(socket_last_error()). "<br>");
}
echo (socket_last_error() ." ". socket_strerror(socket_last_error())."<br>");
// echo $r;
}
}
finally{
socket_close($socket);
}
?>
如果有人可以指出我搞砸的地方,那将非常有帮助。
注意:具有相同设置的python脚本能够接收数据。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)