【发布时间】:2017-04-01 10:10:14
【问题描述】:
我正在尝试用 Java 构建一个 irc 机器人。目前我的问题是我无法让它连接到 Quakenet。我收到“您的客户端可能与此服务器不兼容”。这可能只是因为我没有为这个机器人设置任何客户端版本。我该怎么做?
我知道有一些库可以用 Java 构建 irc bot,但我想从头开始创建一个以获取更多关于它的知识。
【问题讨论】:
我正在尝试用 Java 构建一个 irc 机器人。目前我的问题是我无法让它连接到 Quakenet。我收到“您的客户端可能与此服务器不兼容”。这可能只是因为我没有为这个机器人设置任何客户端版本。我该怎么做?
我知道有一些库可以用 Java 构建 irc bot,但我想从头开始创建一个以获取更多关于它的知识。
【问题讨论】:
这意味着服务器正在向您的客户端发送一条查询其版本的消息,而您的客户端(如果它完全响应)没有以服务器喜欢的字符串响应。它与您使用的软件库(或其版本)无关。
我建议阅读 RFC1459(IRC 协议)并观察发送到您的客户端的原始流量,以了解究竟发生了什么。正如 Yogi Berra 曾经说过的那样,“你通过观察就能观察到很多东西。”
【讨论】:
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();