编写一个基于控制台的C++IRC客户端
Writing a console-based C++ IRC-client
我正在学习C++,因此我决定开始编写IRC客户端代码。
我基本上希望它是基于控制台的,我已经查看了ncurses等库,但我真的不知道这是否是最好的方法。
我想象UI被分为一个部分,无论写什么消息都会出现在其中,另一个部分是用户输入的地方。Ncurses似乎能够做到这一点,但现在我发现了另一个问题。
因为我希望消息部分是事件驱动的(每当有人发送消息时,它都应该出现在消息部分),所以UI的消息部分应该独立于输入部分运行。此外,套接字也必须是非阻塞的。
我在互联网上四处寻找,没有找到任何关于这方面的好教程,因为大多数教程要么真的很旧,要么写得很差,要么只是太长了。
无论如何,我的问题是,如何使用ncurses和socket库来实现这一点?他们有什么好的C++包装器吗(我从阅读ncurses教程中学到的一件事是OOP真的很棒…)?
您可能需要使用几个线程来完成这项工作,因此我将研究pthreads。然而,你不应该害怕冗长的教程,因为你想要实现的并不是那么简单,特别是如果C++是你学习的第一种计算机语言。
使用ncurses作为接口听起来是个好主意。您可以创建基于单线程选择的网络和终端客户端--查看Beej的指南。或者,单线程或多线程的Boost.asio也应该是一个可靠的选择。
相关文章:
- C++:将控制台输出存储在宏中更好吗
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- SSH通过/sbin/SSH无法读取RSA密钥文件(从控制台运行)
- C++控制台应用程序阻止退出
- 如何修复此iFile以将.txt输出到控制台
- 为什么控制台要求输入,即使代码中没有输入
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 控制台输出在 Qt5 中未正确显示
- C++出现控制台错误.我无法识别源代码的问题
- C++程序不会从 Windows 控制台运行
- 有人可以向我解释为什么控制台输出 0 吗?
- Visual Studio 2017 停止工作,并在打开后显示许多控制台窗口
- 如何从 Win32 C++ 应用程序输出到父控制台窗口?
- Win32 API 控制台光标在 WriteConsole 后不移动
- 如何获取控制台窗口的宽度?
- 如何在 Win32 C++控制台应用程序中调用 UWP 类库
- 如何从Windows控制台调用.exe(C++)以在不同的目录(或任何目录)中创建文件夹?
- 来自Visual Studio中控制台项目的exe文件?
- 为什么即使使用 for 循环遍历我的向量,它也没有输出到控制台?(C++)
- 编写一个基于控制台的C++IRC客户端