Php 为未实现的IRC编写IRC服务

Php 为未实现的IRC编写IRC服务,php,irc,Php,Irc,嗯,我一直在寻找这部电影的素材,但什么都没找到。我熟悉IRC协议,我想为我的服务器编写IRC服务(在上运行) 我更喜欢PHP,因为我在那里最精通。有谁能给我介绍一些好的教程,或者在这里解释一下如何开始?(我只需要基本的协议/语法和服务器设置,我将自己完成实际的功能和能力(希望是:P)) 提前谢谢。我的一个朋友已经为InspIRCd做了这个。它从来没有完成,但基本的工作。我们只是通过套接字连接(第一个版本为fsockopen,第二个版本为Socket_create)连接到IRC服务器 对于通信,我

嗯,我一直在寻找这部电影的素材,但什么都没找到。我熟悉IRC协议,我想为我的服务器编写IRC服务(在上运行)

我更喜欢PHP,因为我在那里最精通。有谁能给我介绍一些好的教程,或者在这里解释一下如何开始?(我只需要基本的协议/语法和服务器设置,我将自己完成实际的功能和能力(希望是:P))


提前谢谢。

我的一个朋友已经为InspIRCd做了这个。它从来没有完成,但基本的工作。我们只是通过套接字连接(第一个版本为fsockopen,第二个版本为Socket_create)连接到IRC服务器


对于通信,我们实现了一个InspIRCd接口,其中包含协议中规定的特定线路。这些方法可以被核心调用。

阅读Anope服务的未编译C源代码让我找到了正确的方向,尽管这是一个尝试和错误的过程。我不记得很久以前我尝试自己的PHP服务的时候了,但是如果服务连接的每个客户端都需要一个PING/PONG回复来保持连接,那么PHP不会崩溃吗?线程不是很好,Linux只是我记忆中的一部分。

编辑:天哪,我不知道这个问题有多老了。也就是说,有人可能会这样使用它……请回答下面的问题

我已经在PHP中完成了这项工作,所以我可以告诉您这是可以完成的(源代码尚未发布)

也就是说,我会在这里向你抛出一个基本的核心:

$socket = socket_create(AF_INET, SOCK_STREAM, 6);
// Prevent fast reconnects if server down but try to connect every ten seconds.
while ( !socket_connect($socket,ADDRESS,PORT) ) {

    sleep(10);
}
// set non blocking to avoid 'waiting' for data
socket_set_nonblock($socket);
// INTENTIONAL INFINITE LOOP
while(1) { 
    $read = array($socket);
    // check if there's anything to read.
    $num_changed_sockets = @socket_select($read, null, null, 0, 1);
    if ( $num_changed_sockets > '0' ) {
        // process the socket data here
        processSocket(socket_read($socket,10000,PHP_NORMAL_READ));
    }
}

希望这能帮助你开始

我可以帮你。服务是否像客户一样@Hikaru ShindoServices就像(U-Line)一个服务器,有一个特殊的行yes。。。但是你可以在那里得到一些协议信息。。。我倾向于用C语言编写服务或使用现有的服务(e.x.Anope)。是的,但重点是挑战自己,自己构建它。服务就像服务器?这是否意味着我需要编写一个IRC服务器,该服务器可以链接到UnrealIRCD?没错。服务像服务器一样链接,并有一个U型线集,使它们能够使用一些特殊权限。我的朋友,你可能是我获得奖金的“最年轻”的成员。等我有更多的时间再看一看。谢谢!!简直太棒了!如果我有问题,我怎么联系你?我也会试试的。不过我对C有点生疏了:P谢谢!