PHP网页插座无法绑定套接字 [英] PHP web socket unable to bind socket
问题描述
我有一个Apache服务器和侦听端口8000和80
我用下面的PHP函数创建一个Web接口
私有函数的createSocket($主机,$端口)
{
如果(($这个 - >掌握= socket_create(AF_INET,SOCK_STREAM,SOL_TCP))小于0)
{
死(socket_create()失败,原因:.socket_strerror($这个 - >掌握));
} 自::控制台(插座{$这个 - >掌握}创建); socket_set_option($这个 - >主,SOL_SOCKET,SO_REUSEADDR,1);
#socket_set_option($主人,SOL_SOCKET,SO_KEEPALIVE,1); 如果(($ RET = socket_bind($这个 - >掌握,$主机,$端口))小于0)
{
死(socket_bind()失败,原因:.socket_strerror($ RET));
} 自::控制台(插座势必{$主机}。{$}端口); 如果(($ RET = socket_listen($这个 - >硕士,5))℃下)
{
死(socket_listen()失败,原因:.socket_strerror($ RET));
} 自::控制台('开始监听套接字。'); $这个 - > allsockets [] = $这个 - >掌握;
}
假设$主机为127.0.0.1,端口$ 8000是
当我去外壳控制台并启动socket服务器,它警告说:socket_bind():无法绑定地址[98]:使用地址已
当我删除$端口,它不显示错误,但套接字服务器保持倾听和无反应
这是什么问题?
警告:socket_bind():无法绑定地址[98]:地址已在使用
块引用>这意味着您的服务器已在使用你选择的端口。你必须选择其他端口,直到你找到一个未被使用。
I have a apache server and listen to port 8000 and 80
i use below php function to create a web socket
private function createSocket($host,$port) { if( ($this->master=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)) < 0 ) { die("socket_create() failed, reason: ".socket_strerror($this->master)); } self::console("Socket {$this->master} created."); socket_set_option($this->master,SOL_SOCKET,SO_REUSEADDR,1); #socket_set_option($master,SOL_SOCKET,SO_KEEPALIVE,1); if( ($ret=socket_bind($this->master,$host,$port)) < 0 ) { die("socket_bind() failed, reason: ".socket_strerror($ret)); } self::console("Socket bound to {$host}:{$port}."); if( ($ret=socket_listen($this->master,5)) < 0 ) { die("socket_listen() failed, reason: ".socket_strerror($ret)); } self::console('Start listening on Socket.'); $this->allsockets[] = $this->master; }
assume the $host is 127.0.0.1 and $port is 8000
when i go to shell console and start the socket server, it said Warning: socket_bind(): unable to bind address [98]: Address already in use
when i remove the $port, it doesnt show error, but the socket server keep listening and no response
What is the problem?
解决方案Warning: socket_bind(): unable to bind address [98]: Address already in use
This means that your server is already using the port that you selected. You'll have to choose another port until you find one that is not in use.
这篇关于PHP网页插座无法绑定套接字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!