3

私は C++ を学んでいるので、IRC クライアントのコーディングを始めることにしました。

私は基本的にコンソールベースにしたいと思っており、ncurses などのライブラリを調べましたが、これが最善のアプローチであるかどうかはよくわかりません。

UI は、書かれたメッセージが表示される 1 つの部分と、ユーザーの入力が行われる 1 つの部分に分割されていると想像します。Ncurses はこれを実行できるように見えましたが、別の問題を発見しました。

メッセージ部分をイベント ドリブンにしたいので (誰かがメッセージを送信するたびに、これがメッセージ部分に表示される必要があります)、UI のメッセージ部分は入力部分とは独立して実行する必要があります。また、ソケットもノンブロッキングである必要があります。

私はインターネットを見回しましたが、これに関する良いチュートリアルは見つかりませんでした.

とにかく、私の質問は、ncurses とソケット ライブラリを使用してこれを行うにはどうすればよいかということです。それらの優れた C++ ラッパーはありますか (ncurses チュートリアルを読んで学んだことの 1 つは、OOP が本当に素晴らしいということです...)?

4

2 に答える 2

2

そのためにはおそらくいくつかのスレッドを使用する必要があるので、pthreadを見てみましょう。ただし、特にC ++が最初に学習するコンピューター言語である場合は、達成しようとしていることはそれほど単純ではないため、長いチュートリアルを恐れてはなりません。

于 2011-06-30T22:29:51.027 に答える
1

インターフェイスに ncurses を使用するのは良いアイデアのように思えます。シングル スレッドの select ベースのネットワークおよびターミナル クライアントを実行できます。Beej のガイドを参照してください。あるいは、シングルスレッドまたはマルチスレッドの Boost.asio も堅実な選択肢です。

于 2011-06-30T23:38:09.733 に答える