【问题标题】:.NET based IRC Server基于 .NET 的 IRC 服务器
【发布时间】:2010-12-15 22:12:52
【问题描述】:

目前是否有使用 .NET 编写的 IRC 服务器(不是服务)?

我的一位同事以前从未使用过或听说过 IRC,这让我很惊讶,因为他熟悉 Jabber 和其他消息传递协议。

想向他展示使用 .NET 协议是多么简单(他知道 VB.NET、Flash 和 3D 设计,所以 .NET 可能是我向他展示的唯一方法)。

在我的搜索中只能找到客户端的代码,没有服务器。

有谁知道一个比较接近标准的?不需要像 nickserv 等花哨的东西。

注意:指服务器本身,如 UnrealIRCD 等;不是服务。

【问题讨论】:

  • 注意:IRC 服务通常与 IRCD 一起实现,而不是作为其中的一部分。 (即 u 型机器人)
  • 我指的是服务器而不是服务,我认为熟悉 IRC 服务器的人更容易识别守护进程。
  • codeplex.com 是搜索 C#/.NET 内容的好地方——很多项目,很多垃圾,但也有一些宝石。但在这种情况下,没有服务器......嗯:-/
  • @Aequitarium:我在您的帖子中主要指的是这一点:“任何人都知道,它相对接近标准?不需要像 nickserv 等花哨的东西。”
  • @pst 不幸的是,只能找到客户,我知道没有理由在 .NET 中编写 IRCD,但我仍然认为 - 有人 - 现在会为了好玩而这样做,哈哈。

标签: .net irc


【解决方案1】:

快速搜索找到了我这个(相当旧的)...

http://sourceforge.net/projects/csharpircserv/


这部分代码监听传入的连接

    public cSocket(string Server, int Port)
    {
        if(sock != null && sock.Connected)
        {
            sock.Shutdown(SocketShutdown.Both);
            System.Threading.Thread.Sleep(10);
            sock.Close();
        }
        sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);    
        IPEndPoint ep = new IPEndPoint(IPAddress.Parse(Server), Port);
        AsyncCallback onconnect = new AsyncCallback(OnConnect);
        sock.BeginConnect(ep, onconnect, sock);
    }

这部分 Main.cs 对 Ping 的响应

    switch(sp[0].ToLower())
                        {
                            case "ping":
                                s.Send("PONG :"+co[1]);
                                break;

【讨论】:

  • 当我澄清问题时,我认为您正在输入,哈哈。表示服务器/守护进程,而不是服务。
  • 我认为这确实会这样做,除非我误解了......我已经更新了我的答案。
  • 这是服务(NickServ HostServ 等)连接到 IRC 服务器的方法,PONG 响应是客户端在 Pinged 时给出的。希望这是我想要的,不幸的是它不是:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多