我已经看到这个问题至少被问过十二遍.没有任何答复对我有帮助.
编码:
$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用户才能执行此操作.
有关此主题的详细讨论,请阅读:Is there a way for non-root processes to bind to “privileged” ports on Linux?
标签:sockets,php 来源: https://codeday.me/bug/20191121/2053135.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。