0

我正在尝试使用 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 表示错误打开的套接字。

帮助表示赞赏。

4

3 回答 3

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");
}

?

于 2010-07-09T22:24:07.157 回答
1

我修好了它。

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

global $socket;

它奏效了。非常感谢!

于 2010-07-09T22:36:06.720 回答
0

文档说(强调我的):

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

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

于 2010-07-09T22:31:54.370 回答