fsockopen不工作?

时间:2010-07-09 22:11:30

标签: php sockets fsockopen

我正在尝试使用Windows 7在命令行上通过PHP连接到IRC服务器。

每次运行时:

$socket = fsockopen($irc_server, 6667, $errno, $errstr, 5);

$errno = 0,$errstr =“”和$socket ='资源ID#4'(使用die($socket);

这是什么原因,我该如何调试更多内容。

以下代码:

$s = fsockopen("google.com", 80, $errno, $errstr, 5);
die($errno.", ".$errstr.", ".$s);

...返回以下内容:

0, , Resource id #4

我无法使用$socket。当我尝试使用它时,它会显示“无效资源”。此外,PHP文档指出errno 0表示错误打开的套接字。

非常感谢帮助。

3 个答案:

答案 0 :(得分:2)

你能告诉我们你的代码吗?

此代码会发生什么:

$s = fsockopen($irc_server, 6667, $errno, $errstr, 5);
if ($s === false) {
  die($errno.", ".$errstr.", ".$s);
} else {
  // your code with socket
  die("Valid socket resource");
}

答案 1 :(得分:1)

我修好了。

函数irCmd不知道$ socket,所以我把它放在它前面:

global $socket;

它有效。非常感谢!

答案 2 :(得分:0)

文件说(强调我的):

  

如果errno中返回的值为0 且函数返回FALSE ,则表示错误发生在connect()调用之前。这很可能是由于初始化套接字时出现问题。

由于函数未返回false,因此套接字有效。如果您有其他问题,请告诉我们它们是什么; fsockopen已正常返回此处。