Написание консольного C ++ IRC-клиента - PullRequest
3 голосов
/ 01 июля 2011

Я изучаю C ++, и поэтому я решил начать кодирование IRC-клиента.

Я в основном хочу, чтобы это было одобрено, и я заглянул в библиотеки, такие как ncurses, но я действительно не знаю, будет ли это лучшим подходом.

Я представляю, что пользовательский интерфейс разделен на одну часть, где появляются все написанные сообщения, и одну часть, куда направляется пользовательский ввод. Казалось, что Ncurses могли это сделать, но теперь я обнаружил еще одну проблему.

Поскольку я хочу, чтобы часть сообщения управлялась событиями (всякий раз, когда кто-то отправляет сообщение, оно должно появляться в части сообщения), часть сообщения интерфейса должна выполняться независимо от части ввода. Кроме того, розетки также должны быть неблокирующими.

Я посмотрел в Интернете и не нашел хороших учебников по этому вопросу, поскольку большинство из них либо очень, очень старые, плохо написанные, либо просто слишком длинные.

В любом случае, мои вопросы: как бы это сделать с помощью библиотек ncurses и socket? Являются ли они хорошими обёртками для C ++ (одна вещь, которую я узнал из уроков ncurses, в том, что ООП действительно прекрасна ...)?

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

Для этого вам, вероятно, потребуется использовать несколько потоков, поэтому я взгляну на pthreads .Однако вам не следует бояться длинных учебных пособий, потому что то, чего вы пытаетесь достичь, не так просто, особенно если C ++ - первый изучаемый вами компьютерный язык.

1 голос
/ 01 июля 2011

Использование ncurses для интерфейса звучит как хорошая идея. Вы можете сделать однопоточную сеть на основе выбора и терминальный клиент - посмотрите Руководство Биджа . В качестве альтернативы, Boost.asio, одно- или многопоточный, тоже должен быть хорошим выбором.

...