微型PHP Web服务器不接受127.0.0.1:80以外的任何连接

时间:2009-10-20 02:32:34

标签: php sockets

我创建了一个微型“网络服务器”,只需将一条消息返回到端口80上发送给它的任何请求。我可以通过http://127.0.0.1/连接到它但是当我尝试用我的实际连接到它时IP地址,没有任何结果。

代码:     

# config
$conn_ip = "127.0.0.1"; // probably localhost
$conn_port = 80; // port to host 'server' on
$conn_max  = 5; // max connections to accept
# end config

$output = 'blah';

# prepare php script
set_time_limit(0);
ob_implicit_flush(true);
# end

# setup the socket
$server = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_bind($server,$conn_ip,$conn_port);
socket_listen($server,$conn_max);
# end

print "listening on port 80...\n\n";

# loop
while (true) {
 if (($new_sock = socket_accept($server)) !== NULL) {
  print("got connection...\n");
  socket_write($new_sock,$output,strlen($output));
  socket_close($new_sock);
     }
}
# end

?>

我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

更改此行

$conn_ip = "127.0.0.1"; // probably localhost

$conn_ip = 0;

  • 127.0.0.1表示您的“网络服务器”仅监听连接 在127.0.0.1(localhost)
  • 0表示您的“网络服务器”将监听每个IP 你的电脑

答案 1 :(得分:0)

socket bind更改为:

socket_bind ($server, 0,$conn_port);

通过指定$ conn_ip,您只能绑定到该接口。在这种情况下,您绑定到环回。这是测试的默认设置,因为您可能不希望世界在您第一次开始编写时连接到您的服务。