-1
if (serverResponse.contains("PING ")) {
    writer.write("PONG " + serverResponse.substring(5) + "\r\n");
    writer.write("PRIVMSG " + c.getHomechannel() + " :I got pinged!\r\n");
    System.out.println("pinged");
    writer.flush( );
}

if (cmd.equalsIgnoreCase("PING")) {
    TCPRequestManager.sendWrite("PONG " + param);
    TCPRequestManager.doMsg("c.getHomechannel()", ":I got pinged!");
    TCPConnectionManager.getWriter().flush( );
}

两者似乎都在工作并向我发送消息说客户已被 ping,但我认为由于断开连接,它实际上并没有返回乒乓球,我做错了什么吗?

4

1 回答 1

0

PONG 消息不应该包含目的地吗?我猜serverResponse.substring(5)第一个代码块中的服务器名称是ping您的服务器的服务器名称。它期待您的服务器irc 服务器的 PONG。

通常,事务看起来像这样,a.com是 irc 服务器的主机名,b.com是连接到它的机器人的主机名:

PING :a.com          (sent from a.com to b.com)
PONG b.com :a.com    (sent from b.com to a.com)

看起来您要发送的内容(鉴于前面的示例)是:

PING :a.com          (sent from a.com to b.com)
PONG :a.com          (sent from b.com to a.com, except there's no origin)
于 2012-05-23T23:42:30.183 回答