设置套接字服务器时出现问题

时间:2012-03-27 22:42:09

标签: php sockets

我在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中已经使用的地址

1 个答案:

答案 0 :(得分:7)

在大多数需要root权限的系统端口上尝试大于1024的端口号。

相关问题