嘿,我想扩展我的C++知识,所以我要做的第一件事是网络编程.
我想制作一个IRC机器人(希望能教会我关于套接字编程和网络主题),但我不知道从哪里开始.如果有人能够向我解释IRC机器人如何工作以及如何制作它们,并指导我学习一些资源,那将非常棒.简单的片段也很棒......
谢谢!
编辑:
忘了提我用ubuntu,所以windows方式不是一个选择
情况:
我想玩IRC机器人作为我正在研究的其他代码的通用通信接口.服务器硬件将是旧的和低内存,但运行在相对最新的Debian GNU/Linux安装上.我不希望一次超过一百个用户,顶部,并且大多数时候可能只有一位数.这里的接口比服务器本身更受关注,所以我更喜欢一些相对简单的东西来维护大量的配置和调优选项对更大的站点更有用.
根据Debian的可用包列表引用Wikipedia比较和Google PageRank列表,可以得到以下顶级竞争者:Undernet(ircd-ircu),Ratbox(ircd-ratbox)和Inspire(inspircd).不幸的是,我找不到任何严肃的比较,所以我希望在这里提出一个更快的解决方案,而不是一次只尝试一个,直到有些事情让我感到沮丧.
我正在寻找一个好的,免费的,优选的开源,IRC客户端嵌入到网页中.
支持大多数浏览器的明显要求,如果需要插件,它应该是一个已经部署完全的插件,它不应该对服务于页面的Web服务器造成太大压力.
我想构建一个基本上执行以下操作的机器人:
我应该只使用python中的IRC库或套接字,还是需要更多的机器人框架.
你会怎么做?
谢谢!
这是我目前正在使用的代码,但是,我没有让它工作.
#!/usr/bin/python
import socket
network = 'holmes.freenet.net'
port = 6667
irc = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
irc.connect ( ( network, port ) )
irc.send ( 'NICK PyIRC\r\n' )
irc.send ( 'USER PyIRC PyIRC PyIRC :Python IRC\r\n' )
irc.send ( 'JOIN #pyirc\r\n' )
irc.send ( 'PRIVMSG #pyirc :Can you hear me?\r\n' )
irc.send ( 'PART #pyirc\r\n' )
irc.send ( 'QUIT\r\n' )
irc.close()
Run Code Online (Sandbox Code Playgroud) 我正在使用C#中的一个简单的irc bot,我无法弄清楚如何将粗体/颜色等典型的mirc控制代码嵌入到字符串文字中.
有人能指出我如何做到这一点?
我试图在用户进入或离开频道时检测Hubot,但到目前为止,我无法找到与此相关的任何信息.
有没有人有任何想法如何做到这一点?:)
提前致谢!
我从小就开始使用IRC,我一直很着迷.作为一种语言练习,我在考虑使用Shoes作为图形前端在Ruby中编写一个简单的IRC客户端.我的问题,亲切的,我需要熟悉什么才能开始这个伟大的冒险(当然除了鞋和Ruby)?我想有一些关于IRC协议的规范.有什么指针吗?
http://sourceforge.net/projects/jisirc/正是我所需要的,唯一的问题是它有多个ActiveX依赖项,而且不会这样做.有谁知道任何更便携的类似项目?
在我的IRC Bot中,有一些命令我只想让我使用,我想检查以确保使用我的名字的任何人都使用nickserv(已设想).但是,我无法找到一种简单的方法来确定这一点,这就是我在这里的原因.
如果重要的话,Freenode和Rizon是主要的目标网络.
编辑:我实际上知道用户的各种用户模式(尽管我没有足够的注意力去意识到他们的不同!); 很抱歉以前没有提过.但是,我从用户那里获得的原始响应不包括他们的用户模式; 它看起来像这样:
:liam_neeson!n=pearson@71-9-55-124.dhcp.snlo.ca.charter.com PRIVMSG #erasmus-testing :foo
Run Code Online (Sandbox Code Playgroud)
那么,我想,我正试图找到一种方法(用各种各样的ircds,grr)来获得那些旗帜.如果像有人提到的那样,Rizon会返回是否有人在WHOIS查询中被提名,那么这就是我正在寻找的那种东西.
在切换和显示缓冲区时,是否可以通过每个emacs帧获取相关缓冲区的子集
我的意思是