2012-05-22 49 views
-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(); 
} 

Java的IRC机器人乒乓

​​

似乎都工作,我的消息说客户已经ping通,但我不认为它真的返回了乒乓由于断开,我是做错了什么?

回答

0

应该不是PONG message contain a destination?我猜serverResponse.substring(5)在第一个代码块是服务器的服务器名称pinging您的服务器。它期望从 POND 您的服务器 irc服务器。

通常情况下,交易看起来是这样的,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)