2010-10-02 91 views
1

我正在嘗試在Java中編寫一個ircBot的一些練習。我使用this示例代碼作爲基礎。我試圖弄清楚如何從我的控制檯中讀取文本,以便我可以用bot來與人交談。 有一個while循環接受來自ircserver的輸入並將其吐出到控制檯並響應PING。我假設我必須有另一個線程接受來自用戶的輸入,然後使用相同的BufferedWriter再次將其吐出到ircserver,但我無法弄清楚。 任何幫助將會很棒!在Java中構建一個irc客戶端

+0

你應該發佈你到目前爲止所做的代碼(只有相關部分)PING/PONG – 2010-10-02 06:37:42

+0

我不確定你想要什麼樣的練習,但這並不回答這個問題,但是......如果你是試圖寫一個irc bot,你真的應該看看使用http://www.jibble.org/pircbot.php或http://jerklib.sourceforge.net/ – whaley 2010-10-02 11:43:45

+0

嘗試** [JawaBot 2.x] (http://code.google.com/p/jawabot/)** - 一個帶有IRC和Web UI的可插拔獨立應用程序,旨在將多種功能置於一個機器人下,同時仍保持代碼結構健全。 ** ** Maven化。 – 2013-07-14 10:49:55

回答

1

在您已鏈接的代碼中,'reader'和'writer'實例確實連接到您與IRC服務器建立的雙向套接字的輸入和輸出端。

因此,爲了從用戶那裏獲得輸入,您確實會新建另一個線程,它以某種方式從用戶那裏獲取命令並對這些線程執行操作。最基本的模型,當然是使用System.in,最好包裝它,以便您可以從用戶檢索整行輸入,並將它們解析爲命令。

來讀取System.in整行,你可以做這樣的事情:

BufferedReader bin = new BufferedReader(new InputStreamReader(System.in)); 
String line; 
while ((line = bin.readLine()) != null) { 
    // Do stuff 
} 

你也可以考慮使用CLI庫,在那裏對Java的一個,像JLine

0

如果你真的想幫自己一個忙,我建議(廣泛使用後)切換到pircbot。 Pircbot確實是一個非常棒的圖書館,可以讓你在幾分鐘內啓動並運行IRC bot。查看網站上的一些示例,它非常易於使用。

+0

我建議不要使用PircBot。它有一個不幸的API設計,你的應用程序將很快成長。而是JawaBot或PircBotX。 – 2013-07-14 10:41:29