我正在尝试使用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表示错误打开的套接字。
非常感谢帮助。
答案 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
已正常返回此处。