【问题标题】:Setting client version for Java irc bot为 Java irc bot 设置客户端版本
【发布时间】:2017-04-01 10:10:14
【问题描述】:

我正在尝试用 Java 构建一个 irc 机器人。目前我的问题是我无法让它连接到 Quakenet。我收到“您的客户端可能与此服务器不兼容”。这可能只是因为我没有为这个机器人设置任何客户端版本。我该怎么做?

我知道有一些库可以用 Java 构建 irc bot,但我想从头开始创建一个以获取更多关于它的知识。

【问题讨论】:

    标签: java bots irc


    【解决方案1】:

    这意味着服务器正在向您的客户端发送一条查询其版本的消息,而您的客户端(如果它完全响应)没有以服务器喜欢的字符串响应。它与您使用的软件库(或其版本)无关。

    我建议阅读 RFC1459(IRC 协议)并观察发送到您的客户端的原始流量,以了解究竟发生了什么。正如 Yogi Berra 曾经说过的那样,“你通过观察就能观察到很多东西。”

    【讨论】:

    • 谢谢。但是,您能详细说明一下吗?我不确定如何才能看到更多流量,因为我认为我目前正在尝试将所有内容输出到控制台。
    • 最终你所做的只是打开一个套接字。只需将来自该套接字的任何内容打印到控制台(除了您正在使用它做的任何其他事情)。您会看到各种有趣的东西。多年前我从头开始编写了一个机器人,但找不到源代码。我最近的努力使用了 pIRC 库。它工作得很好,但既然你想自己动手,那对你没有什么帮助。
    • 这也是解决方案。似乎加入 IRC 网络我不需要指定任何版本。只有尼克和用户名。最后我需要的是:Socket socket= new Socket(server, 6667); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(soketti.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(soketti.getInputStream())); System.out.println("Starting login"); // Login to server bw.write("NICK " + nickname + "\r\n"); bw.write("USER " + login + " 8 * : robot\r\n"); bw.flush();
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多