【发布时间】:2017-07-07 02:05:28
【问题描述】:
我试图在 php 上创建一个简单的 UDP 服务器,它最初将接收一些虚拟数据。我已经尝试过一些教程,现在我可以创建和绑定一个套接字。但是,当我出于某种原因使用socket_recvfrom 时,页面只是继续加载,当我再次刷新它时,端口被占用,我无法再在该端口中绑定套接字。以下是我的代码,欢迎任何答案。
`
if(!($sock=socket_create(AF_INET, SOCK_DGRAM, 0)))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldnt create socket: [$errorcode] $errormsg \n");
}
echo "socket create OK";
if (!socket_bind($sock,"localhost",8880))
{
$errorcode = socket_last_error();
$errormsg = socket_strerror($errorcode);
die("Couldnt bind socket: [$errorcode] $errormsg \n");
}
echo "socket bind OK";
// while(1)
// {
$remote_ip ='';
$remote_port=0;
echo "waiting for data ... \n";
$r=socket_recvfrom($sock, $buf, 512 , 0 , $remote_ip , $remote_port);
echo "$remote_ip : $remote_port --". $buf;
// }
// socket_close($sock);
【问题讨论】:
-
在您将ignore_user_abort的php ini配置定义为“False”或在运行时设置它并为套接字定义超时之前,只需刷新您的页面不会终止您的php脚本。
标签: php sockets server udp port