Java でカスタム IRC クライアントをプログラミングしています。チャットでメッセージを正常に受信していますが、チャット メッセージの送信方法がわかりません。IRCHelp.org を見ましたが、「「疑似」BNF のメッセージ形式」に関するセクションがよくわかりませんでした。これは、私が探しているセクションだと思います。
これは私が探しているセクションですか?
そうでない場合、どのセクションを見ればよいですか?
RFC 1459を見てください。
疑似BNFも使っていますが、実は分かりやすいです。
例:
4.4.1プライベート メッセージ
コマンド:
PRIVMSG
パラメータ:<receiver>{,<receiver>} <text to be sent>
PRIVMSG は、ユーザー間でプライベート メッセージを送信するために使用されます。メッセージの受信者のニックネームです。コンマで区切られた名前またはチャネルのリストにすることもできます。
このパラメーターは、ホスト マスク (#mask) またはサーバー マスク ($mask) の場合もあります。どちらの場合も、サーバーは、マスクに一致するサーバーまたはホストを持っている人にのみ PRIVMSG を送信します。マスクには少なくとも 1 つの「.」が必要です。最後の「.」の後にワイルドカードはありません。この要件は、すべてのユーザーにブロードキャストされる"# " または "$ "にメッセージを送信することを防ぐために存在します。経験から、これは責任を持って適切に使用されるよりも乱用されます。ワイルドカードは「*」と「?」です。文字。PRIVMSG コマンドに対するこの拡張機能は、オペレーターのみが使用できます。
数値応答:
ERR_NORECIPIENT ERR_NOTEXTTOSEND ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS ERR_NOSUCHNICK RPL_AWAY
例:
:Angel PRIVMSG Wiz :Hello are you receiving this message ?
;エンジェルからウィズへのメッセージ。
PRIVMSG Angel :yes I'm receiving it !receiving it !
エンジェルへのメッセージ。
PRIVMSG jto@tolsun.oulu.fi :Hello !
サーバー上のクライアントへのメッセージ
IRC プロトコルの実装は難しい場合があることに注意してください。
JOIN
、PART
、QUIT
KICK
およびNICK
(および参加時に応答を解析して) ユーザーのクライアント側ビューを変更するか、そのチャネルの のユーザーNAMES
リストが必要になるたびにサーバーに問い合わせる必要がありますNAMES
。クライアント(ユーザーリストを表示する)を追跡する必要があります。\x02
and で始まります\x03
)VERSION
応答がないクライアントを許可しないサーバーもあります。ACTION
ctcps は一般的で、/me コマンドに使用されます。DCC
ctcps は一般的で、ファイル転送、ダイレクト チャット接続の確立、および暗号化されたメッセージの送信に使用されます。/raw
orの使用をサポートしており/quote
、不明なコマンドをすべてサーバーに送信するクライアントもあります。/kick
、/op
...の一般的なエイリアスを提供します。IRC ライブラリを使用するのが最善の選択肢だと思います。IRC プロトコルは非常に単純ですが、同時にサイズが大きいため、完全なライブラリを作成するのは実際にはかなりの作業になります。一方、IRC はテキストベースのプロトコルなので、自分で書くのは簡単です。
次のいずれかをご覧ください。
自分で実装を書きたいと確信している場合は、これを見ることができます。