2

我正在尝试在 EC2 实例上使用套接字,但是当我尝试运行代码时出现以下错误:

PHP 警告:socket_bind():无法绑定地址 [99]:无法在第 45 行的 sockets_test.php 中分配请求的地址

以下是相关代码的一部分:

$CFG = new stdClass();
$CFG->chat_serverip = 'MY_PUBLIC_EC2_IP';
$CFG->chat_serverport = '9111';

$listen_socket = socket_create(AF_INET, SOCK_STREAM, 0))
socket_bind($listen_socket, $CFG->chat_serverip, $CFG->chat_serverport)

如果我使用 127.0.0.1 或私有 IP,这工作得很好。我的安全组有以下规则:

0-65535 0.0.0.0/0 (TCP)
0-65535 0.0.0.0/0 (UDP)
ALL 0.0.0.0/0 (ICMP)
4

2 回答 2

6

您不能绑定到外部 IP,您必须绑定到内部 IP,并设置一个规则以允许该端口,因此当他们连接到外部 IP 和端口时,它会被重定向到内部 IP。

于 2012-05-23T13:58:52.553 回答
-1

The phantomjs has some question,

we need bind the internal ip of We can see at ifconfig, not external IP of We can`t see at that.

于 2015-01-30T03:25:50.443 回答