php - socket_bind() 无法绑定(bind)地址

标签 php linux webserver websocket

我正在尝试为我正在进行的一个小项目创建一个 Web Socket 服务器。

我已经设置了服务器(位于家中)并将端口转发到 80 和 22。我阅读了本教程:here

每当我通过 ssh 进入我的服务器运行“startDarmon.php”时,我都会收到以下错误:

PHP Warning:  socket_bind(): unable to bind address [98]: Address already in use in  
/var/www/server/socket.class.php on line 48
2013-02-23 14:15:38 System: Socket bound to localhost:8000.
2013-02-23 14:15:38 System: Start listening on Socket

我认为这就是阻止我的客户端连接到服务器的原因。所以在 startDarmon.php 文件中我有:

$WebSocket = new socketWebSocket('MY_IP_NOT_LAN_IP',8000);

在我的客户端文件中,我有:

var host = "ws://MY_IP_NOT_LAN:8000/server/startDaemon.php";

有没有人对为什么这不允许我建立连接有任何建议?

最佳答案

我猜问题出在 Linux 服务器上。

在 root 下运行 netstat -a -p -n 命令(例如使用 sudo)以了解哪个进程正在使用该端口。然后也许做一个setsockopt(2)使用 SO_REUSEADDR (有关更多信息,请参阅 socket(7))。

TCP 协议(protocol)有一些指定的延迟(以分钟为单位)(例如保持事件等)。参见例如tcp(7)

我确实建议阅读一本关于 Linux 系统编程的好书,例如 Advanced Linux Programming也许还有一些关于网络编程的 Material 。

关于php - socket_bind() 无法绑定(bind)地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15041518/

相关文章:

php - 这是 session 问题吗?

javascript - 是否可以在 Ubuntu (LAMP) Web 服务器上运行 grunt?

c - "hello world"c cgi 脚本在服务器上崩溃”

webserver - 我将如何在Windows服务器上运行Dart VM?

php - php中的foreach循环有多个多个数组

javascript - json_encode 将空数组放在 json 末尾

php - Drupal:如何将 View 参数放入页眉/页脚/空 View

php - 在1-1关系中,为什么我的插入在两个表中插入两条记录?

linux - 为什么CapEff在/proc/$PID/status中全为零

php - Apache - 浏览任何域 URL 都指向同一文件夹