无法绑定地址[10048]:通常只允许每个套接字地址(协议/网络地址/端口)使用一种

时间:2020-04-03 09:34:20

标签: php sockets websocket phpwebsocket

我是第一次使用php Web套接字。我正在尝试实现简单的Web套接字,但出现绑定地址错误。我尝试更改端口号,但在我的情况下不起作用。我正在我的本地计算机上尝试此操作。enter image description here 代码在下面

    <?php

$host ="localhost";
$port =12345;
set_time_limit(0);
$sock = socket_create(AF_INET,SOCK_STREAM,0) or die("Could not create socket \n");
$result_sock = socket_bind($sock,$host,$port)or die("Could not bind to socket \n");
$result_sock = socket_listen($sock,3)or die("Could not Setup socket listener \n");
echo "Listening for connections";


do{

    $accept = socket_accept($sock)or die("Could not accept incoming connection \n");
    $msg = socket_read($accept,1024)or die ("Could not read input \n");

   socket_write($accept,$reply,strlen($reply)) or die ("Could not write input \n");
   $errors = array();
    // connect db
   $db= mysqli_connect('localhost','root','','color_luck_db') or die ("Could not connect to  DATABASE");
   $timer_value = "SELECT Timer_Value from gamehistory where Room_Id= '1'";
   $result_timer= mysqli_query($db,$timer_value);
   $_SESSION['timer_value']= $results;
   $result_timer=$result_timer--;

}while($result_timer>0);

socket_close($accept,$sock);
 ?>

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,我从 Jeff Lambert

的这个答案中得到了解决方案 <块引用>

“我发现了 this articlethis one,它们中的每一个都表明您可能用尽了端口或使用了无效的端口号。 我在这方面对 Windows 没有太多经验,但至少第二篇文章声称您可以使用 1024-5000 范围内的端口,或者如果您想使用更高的端口,则更改注册表设置。我会尝试将您的端口设置为该范围内的某个值,例如 4950,然后看看是否能解决您的问题。 对于任何感兴趣的人来说,有问题的注册表项是 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort 并且该值可以达到 65534。但是,我怀疑这是否是必要的步骤,除非您已经有大约 4000 个其他正在运行的进程正在运行所有可用端口。”

这是我的代码:

<?php
    $host = "localhost";
    $port = 4950;
    set_time_limit(0);
    // create socket
    $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
    echo "Socket created successfully\n";
    // bind socket
    socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
    echo "socket binding completed\n";
    // lstening on socket
    socket_listen($socket) or die("Could not set up socket listener\n");
    echo "Listening....";
    while(true){
        //accepting connection of client
        $client = socket_accept($socket) or die("Error in accepting client");
        // saying wellcome to client
        $msg = "welcome";
        socket_write($client, $msg, strlen($msg)) or die("error in ");
    }
?>