2016-11-17 4 views
1

Javaでircボットを作成しようとしています。現在私の問題は、Quakeetに接続することができないということです。私は "あなたのクライアントはこのサーバーと互換性がないかもしれません。"これは、私がこのボットのクライアントバージョンを設定していないためかもしれません。どうやってやるの?Java ircのクライアントバージョンを設定する

irc botをJavaでビルドするためのライブラリがあることは知っていますが、詳細について知りたい場合はゼロから作成したいと思います。

答えて

3

つまり、サーバーはクライアントにバージョンを問い合わせるメッセージを送信し、クライアントは応答してもサーバーが好きな文字列で応答していません。それはあなたが使用しているソフトウェアライブラリ(またはそのバージョン)とは何の関係もありません。

私はRFC1459(IRCプロトコル)を読んで、正確に何が起こっているかを見るためにあなたのクライアントに送信されている生のトラフィックを見ることをお勧めします。 Yogi Berraがかつて言ったように、「見るだけで多くのことを観察する」

+0

ありがとうございました。しかし、あなたはこの小さなビットを詳しく説明できますか?私は現在、すべてのものをコンソールに出力しようとしていると思うので、どのようにトラフィックが増えるのか分かりません。 – Kamsiinov

+0

最終的には、ソケットを開くだけです。そのソケットから来たものをコンソールに出力するだけでなく、あなたがそれを使って何をしているのかを表示します。私は何年も前からボットを書きましたが、ソースを見つけることはできません。私の最近の努力はpIRCライブラリを使用しました。それはうまく動作しますが、自分でロールしたいので、それは本当にあなたを助けません。 – Duston

+0

それも解決策でした。私はIRCネットワークに参加するようですが、私はバージョンを指定する必要はありません。ちょうどニックとユーザーネーム。結局私が必要だったのは以下の通りです: 'ソケットソケット=新しいソケット(サーバー、6667); \t \t BufferedWriter bw =新しいBufferedWriter(新しいOutputStreamWriter(soketti.getOutputStream())); \t \t BufferedReader br = new BufferedReader(新しいInputStreamReader(soketti.getInputStream())); \t \t System.out.println( "Starting login"); \t \t //サーバーにログイン \t \t bw.write( "NICK" +ニックネーム+ "\ r \ n"); \t \t bw.write( "USER" + login + "8 *:robot \ r \ n"); \t \t bw.flush(); ' – Kamsiinov