• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php fsockopen 本地出错

php 搞代码 3年前 (2022-01-25) 21次浏览 已收录 0个评论
文章目录[隐藏]

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

host地址写127.0.0.1或localhost出现:

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

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

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

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

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

代码如下:

<code>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);    }}</code>

最终是通过内网ip调用的,但是为什么会这样呢?

回复内容:

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

host地址写127.0.0.1或localhost出现:

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

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

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

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

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

代码如下:

<code>function async_post($host,$path,$data){    $post = http_build_query($data);    $len = strlen($post);    $fp = fsockopen( $host , 80, $errno, $errstr, 30);    if (!$fp) {<i>·本2文来源gaodai$ma#com搞$代*码网2</i><strong>搞gaodaima代码</strong>        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);    }}</code>

最终是通过内网ip调用的,但是为什么会这样呢?

已经找到问题根源:

<code>服务器设置问题,没有监听localhost服务器网络环境,不知道哪个网管搞的,服务器不能通过外网IP访问自己。这就导致,fsockopen只能通过192那啥访问</code>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php fsockopen 本地出错

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址