0

Java でカスタム IRC クライアントをプログラミングしています。チャットでメッセージを正常に受信していますが、チャット メッセージの送信方法がわかりません。IRCHelp.org を見ましたが、「「疑似」BNF のメッセージ形式」に関するセクションがよくわかりませんでした。これは、私が探しているセクションだと思います。

  1. これは私が探しているセクションですか?

  2. そうでない場合、どのセクションを見ればよいですか?

4

3 に答える 3

0

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 プロトコルの実装は難しい場合があることに注意してください。

  • チャネル内のすべてのユーザーを追跡し、JOINPARTQUIT KICKおよびNICK(および参加時に応答を解析して) ユーザーのクライアント側ビューを変更するか、そのチャネルの のユーザーNAMESリストが必要になるたびにサーバーに問い合わせる必要がありますNAMES。クライアント(ユーザーリストを表示する)を追跡する必要があります。
  • IRC カラー: クライアント (mIRC) に実装された最悪のアイデアだと言う人もいますが、mIRC は存在し、ほとんどのクライアントがサポートしています。そうでない場合は、それらを削除します(\x02and で始まります\x03
  • CTCP CTCPをサポートすることは重要です。
    • 接続時に応答を要求するサーバーもあれば、VERSION応答がないクライアントを許可しないサーバーもあります。
    • ACTIONctcps は一般的で、/me コマンドに使用されます。
    • DCCctcps は一般的で、ファイル転送、ダイレクト チャット接続の確立、および暗号化されたメッセージの送信に使用されます。
  • ユーザーが任意のコマンドを挿入する方法を提供します。ほとんどのクライアントは/raworの使用をサポートしており/quote、不明なコマンドをすべてサーバーに送信するクライアントもあります。
  • /kick/op...の一般的なエイリアスを提供します。
于 2013-09-20T13:24:01.087 に答える
-1

IRC ライブラリを使用するのが最善の選択肢だと思います。IRC プロトコルは非常に単純ですが、同時にサイズが大きいため、完全なライブラリを作成するのは実際にはかなりの作業になります。一方、IRC はテキストベースのプロトコルなので、自分で書くのは簡単です。

次のいずれかをご覧ください。

  • JerkLib - NIO を使用し、イベント駆動型です
  • Sorcix の sIRC - 非常にコンパクトなライブラリ、リスナーを使用
  • PircBot - IRC ボットを書くためのもの
  • IRClib - SSL をサポートするきちんと整理されたコンパクトな IRC ライブラリ

自分で実装を書きたいと確信している場合は、これを見ることができます。

于 2013-09-20T13:30:20.960 に答える