基于 .NET 的 IRC 服务器
Posted
技术标签:
【中文标题】基于 .NET 的 IRC 服务器【英文标题】:.NET based IRC Server 【发布时间】: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,但我仍然认为 - 有人 - 现在会为了好玩而这样做,哈哈。 【参考方案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 时给出的。希望这是我想要的,不幸的是它不是:(以上是关于基于 .NET 的 IRC 服务器的主要内容,如果未能解决你的问题,请参考以下文章