且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

PHP警告:socket_bind():无法绑定地址

更新时间:2021-12-25 10:54:48

socket_bind():unable to bind address


绑定socket 公网ip时报错PHP Warning: socket_bind(): unable to bind address [99]: Cannot assign requested address in /var/www/html/tcp.php on line 8


环境:

 本地 win10 + php7.1nts + nginx1.2

 阿里云 CentOS7.6 + php7.1nts + nginx1.2​


在本地测试 socket 时,服务端设置IP地址:127.0.0.1,客户端IP是:127.0.0.1 是正常运行的;放到公网服务器后,服务端、客户端IP地址都改为了公网IP地址,结果一直报错:PHP Warning:  socket_bind(): unable to bind address  ;此问题引起错误原因大概是:


  1、端口被占用了

 2、端口处于TIME_WAIT状态

 3、IP写错了


端口号是已经加入到了安全组,但还是不可用。


解决方法:


 在阿里云上的 ECS 实例是有两个IP地址的,一个是公网地址,一个是内网地址,将服务端的IP地址填写阿里云给的内网地址,客户端IP地址填写阿里云给的公网地址,再次测试可以正常运行了。