【发布时间】:2012-10-04 13:07:14
【问题描述】:
2 年前它起作用了,现在却出现了一些令人讨厌的错误,我找不到它为什么不起作用的答案:
$this->BotSocket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
if (!$this->BotSocket) {
die('Socket error1 : '.socket_strerror(socket_last_error()));
}
/**
* Bind the socket to make it irc'able
*/
if(!socket_bind($this->BotSocket, $this->BotConfig['hostname'])) {
die('Socket error2 : '.socket_strerror(socket_last_error()));
}
if(!socket_connect($this->BotSocket, $this->BotConfig['server'], $this->BotConfig['port'])) {
die('Socket error3 : '.socket_strerror(socket_last_error()));
}
和连接字符串:
$this->BotConfig = array(
/**
* Bot configuration for information
*/
'nickname' => 'Muts',
'realname' => 'Vii personal funbot',
'ident' => 'Muts',
/**
* Bot server configration
*/
'hostname' => 0,
'server' => 'OGN2.OnlineGamesNet.net',
'port' => 6667,
(数组中有更多,它是正确关闭的) 以及我得到的错误:
警告:socket_connect() [function.socket-connect]:无法连接 [110]:第 225 行 /home/patrick/domains/xxxx/public_html/muts/bot.php 中的连接超时 套接字错误3:连接超时
有人可以帮我解决这个问题吗?
另外值得注意的是: - 使用与 telnet 相同的连接设置 - 使用与 mIRC 相同的连接设置 - 它正在运行一个网络服务器(外部而不是本地计算机)
host:OGN2.OnlineGamesNet.net 的结果是 ogn2.ogamenet.net 的别名。 ogn2.ogamenet.net 地址为 79.110.87.154 - traceroute:traceroute 到 79.110.87.154 (79.110.87.154),最大 30 跳,40 字节数据包
【问题讨论】:
-
连接超时=您无法访问服务器,或者它忽略了您。例如您已被防火墙关闭。
-
您是否针对本地 IRC 服务器对此进行了测试,以确保它实际上是您的代码,而不是您的程序外部的东西?
-
服务器处于活动状态并且端口正在工作,因为当我使用相同的设置连接 mirc 时,它适用于 telnet,因此没有问题
标签: php sockets connect bots irc