我已经看到这个问题至少被问过十二遍.没有任何答复对我有帮助.
编码:
$host = "127.0.0.1";
$port = 80;
//no timeout
set_time_limit(0);
//create socket
$socket=socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
echo socket_strerror(socket_last_error($socket));
exit;
}
$result = socket_bind($socket, $host, $port) or die("Could not bind socket\n");
添加了“ if”语句,因为有一个建议将其放在其中.似乎没有为我做任何事情.我打算把它拿出来.无论如何,我的错误是:
警告:socket_bind():无法绑定地址[10013]:试图以其访问权限禁止的方式访问套接字.
而且,是的,我认为这意味着该端口正在被另一个进程使用.我将端口号更改了大约30次.我暂时关闭了(Windows 8)防火墙.我运行了netstat,发现这些端口没有关闭,所以我有30个具有相同PID和名称的套接字.
所以,我的问题是:我在做什么错?
解决方法:
要绑定到低于1024的端口,该进程需要特权.通常只有root用户才能执行此操作.
标签:sockets,php
来源: https://codeday.me/bug/20191121/2053135.html