php

php fsockopen 本地出错

使用fsockopen进行异步调用时出现错误,相同的代码在阿里云centos、腾讯云win2008下没有出现问题。
host地址写127.0.0.1或localhost出现:

Warning: fsockopen(): 由于目标机器积极拒绝,无法连接。 (10061)


host写当前服务器域名出现:

Warning: fsockopen():由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 (10060)


    []host地址当前服务器内网IP如 192.168.3.3 相应正常,没有错误。[/]


并且,在该服务器向其他服务器fsockopen或者其他服务器想该服务器fsockopen都没有问题,可以正常发送。

代码如下:
function async_post($host,$path,$data){
$post = http_build_query($data);
$len = strlen($post);
$fp = fsockopen( $host , 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)\n";
} else {

$out = "POST $path HTTP/1.1\r\n";
$out .= "Host: $host\r\n";
$out .= "Content-type: application/x-www-form-urlencoded\r\n";
$out .= "Connection: Close\r\n";
$out .= "Content-Length: $len\r\n";
$out .= "\r\n";
$out .= $post."\r\n";
fwrite($fp, $out);
fclose($fp);
}
}



 
已邀请:

webmaster - 80后IT男,Java程序猿。

赞同来自:

我们的主机也是阿里云。
通过问题,你要做的是Socket连接自己主机出现了错误。
目前看代码没有问题,连接本地主机不需要回环。
有两点:
1 确认你的80 web服务器启动成功。无论是Nginx还是Apache;
2 你用的Cli命令行运行的脚本。连接别人一定是没问题的。
 
请确认。

要回复问题请先登录注册