我在php server.php中有一个套接字服务器
$master = WebSocket("localhost",800);
$sockets = array($master);
$users = array();
$debug = false;
function WebSocket($address,$port)
{
$master=socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("socket_create() failed");
socket_set_option($master, SOL_SOCKET, SO_REUSEADDR, 1) or die("socket_option() failed");
socket_bind($master, $address, $port) or die("socket_bind() failed");
socket_listen($master,20) or die("socket_listen() failed");
echo "Server Started : ".date('Y-m-d H:i:s')."\n";
echo "Master socket : ".$master."\n";
echo "Listening on : ".$address." port ".$port."\n\n";
return $master;
}
在我的命令行上,我做了
sudo chmod 777 /socket/websocket/server.php
然后
php -q /socket/server.php trying to bring it up.
然后出现错误,
警告:socket_bind():无法绑定地址[13]:第60行/socket/websocket/server.php中的权限被拒绝
第60行是
socket_bind($master, $address, $port) or die("socket_bind() failed");
$master=id+4
$address=localhost
$port=800
我的意思是我已经将该文件chmoded到777,为什么仍然无法为socket服务器文件添加bindaddress?
如果我将端口地址更改为12345,则会出现新错误
警告:socket_bind():无法绑定地址[48]:第67行的/socket/websocket/server.php中已经使用的地址
答案 0 :(得分:7)
在大多数需要root权限的系统端口上尝试大于1024的端口号。