PHP fsockopen() 失败,但 telnet 工作
Posted
技术标签:
【中文标题】PHP fsockopen() 失败,但 telnet 工作【英文标题】:PHP fsockopen() fails, but telnet works 【发布时间】:2011-07-14 18:09:35 【问题描述】:我正在尝试让 Sphinx Search 在 Windows7 下工作。到目前为止一切都很好,只是 php 无法连接到正在运行的服务。
只有远程网络工作:
远程登录本地主机 3312
php: fsockopen("localhost", 3312, $errno, $errstr, 30);
我决定测试一些其他端口...
两个工作:
telnet 本地主机 80
php: fsockopen("localhost", 80, $errno, $errstr, 30);
只有远程网络工作:
远程登录本地主机 3306
php: fsockopen("localhost", 3306, $errno, $errstr, 30);
可能是因为端口是 3312 和 3306 上的二进制数据吗?
【问题讨论】:
“失败”是什么意思?发生什么了?您收到什么错误消息?如果打开失败,PHP 应该会给你一条警告信息,说明失败的原因。 Warning: fsockopen() [function.fsockopen]: 无法连接到 localhost:3312 (连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机没有响应。) 【参考方案1】:尝试使用 127.0.0.1 而不是 localhost - 很多时候这可能会显示依赖操作系统来为您查找主机名。如果这可行,那么它不是 PHP,而是 PHP 和操作系统之间的链接。
【讨论】:
是的,这适用于端口 3312 和 3306。奇怪的是端口 80 与 localhost 一起使用。以上是关于PHP fsockopen() 失败,但 telnet 工作的主要内容,如果未能解决你的问题,请参考以下文章