php socket bind失败,php – socket_bind()无法绑定地址

我正在尝试为我正在处理的小项目创建一个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)以了解正在使用该端口的进程.然后也许用SO_REUSEADDR做一个setsockopt(2)

(详见socket(7)).

TCP协议在几分钟内有一些指定的延迟(例如keepalive等等……).参见例如tcp(7)

我建议你阅读一本关于Linux系统编程的好书,如Advanced Linux Programming,也许还有一些关于网络编程的资料.

标签:php,linux,webserver,websocket

来源: https://codeday.me/bug/20190718/1493685.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值