【问题标题】:Detecting successful channel join in IRC with Java使用 Java 在 IRC 中检测成功的频道加入
【发布时间】:2015-08-11 16:23:42
【问题描述】:

我和一个朋友(还有一个朋友和我一起查看代码以发现任何逻辑上的不一致)正在尝试用 Java 编写一个 IRC 机器人,主要是从头开始(也就是说,不使用 egg drop 或其他流行的起点) .检测成功的服务器加入 (socket.isConnected()) 相当容易,但我正在尝试找出一种检测成功的通道加入的方法。基本上,我希望能够从服务器读取昵称是否被审核或禁止或其他阻止频道加入的原因,而不是仅仅假设加入成功。谢谢!

基本上,如果加入成功,我希望能够打印出“频道 __ 加入”,如果加入不成功,则可以打印出“频道 ___ 加入失败”。有没有办法做到这一点?谢谢!

编辑:经过进一步研究,我现在有兴趣学习如何破译服务器消息代码,特别是它们发送回客户端的格式。谢谢!

【问题讨论】:

  • 您可以很容易地解析来自服务器的所有消息,因为它们都遵循相同的格式。如果第一个字符是冒号 (:),则消息有一个“发件人”部分,以第一个空格结尾。然后,一个命令(单词或数字)后跟以空格分隔的参数(除非有空格冒号 - ` :` - 在这种情况下,冒号后面的字符是最后一个参数)。在我的库中,我将所有这些封装到一个类中,以便于其余代码处理。
  • 请将其添加为答案。 Jack 的数字回复链接加上您的解释是最佳答案。

标签: java join bots irc


【解决方案1】:

尝试通读 RFC,尤其是 JOIN 命令和 numeric repliesMessages 部分解释了来回发送消息的基础知识。不过,您可能应该在尝试实现协议之前尝试理解它;)

【讨论】:

  • 我了解它一般是如何工作的,我更关心如何解析服务器的回复。感谢您提供数字回复链接!现在,弄清楚如何使用它。
  • 如果您对实际解析感兴趣,我发现 JavaCC 在 Java 中运行良好 :) 祝您好运
  • 如果我能把你的提高两次我会的,因为 JavaCC 会做到这一点,尽管我实现了自己的解析器。
猜你喜欢
  • 2018-02-21
  • 2016-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-31
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多