Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写基于控制台的C++;IRC客户端 我正在学习C++,所以我决定开始编码IRC客户端。< /P>_C++_Sockets_Ncurses_Event Driven - Fatal编程技术网

编写基于控制台的C++;IRC客户端 我正在学习C++,所以我决定开始编码IRC客户端。< /P>

编写基于控制台的C++;IRC客户端 我正在学习C++,所以我决定开始编码IRC客户端。< /P>,c++,sockets,ncurses,event-driven,C++,Sockets,Ncurses,Event Driven,我基本上希望它能得到安慰,我也查看过像ncurses这样的库,但我真的不知道这是否是最好的方法 我想象UI被分为一部分,在这一部分中,无论写什么消息都会出现,而用户输入则会出现。Ncurses似乎能够做到这一点,但现在我发现了另一个问题 因为我希望消息部分是事件驱动的(每当有人发送消息时,这应该出现在消息部分中),所以UI的消息部分应该独立于输入部分运行。此外,套接字也必须是非阻塞的 我在互联网上到处找了找,没有找到任何关于这方面的好教程,因为大多数教程要么非常非常古老,要么写得很差,要么就是太

我基本上希望它能得到安慰,我也查看过像ncurses这样的库,但我真的不知道这是否是最好的方法

我想象UI被分为一部分,在这一部分中,无论写什么消息都会出现,而用户输入则会出现。Ncurses似乎能够做到这一点,但现在我发现了另一个问题

因为我希望消息部分是事件驱动的(每当有人发送消息时,这应该出现在消息部分中),所以UI的消息部分应该独立于输入部分运行。此外,套接字也必须是非阻塞的

我在互联网上到处找了找,没有找到任何关于这方面的好教程,因为大多数教程要么非常非常古老,要么写得很差,要么就是太长了


无论如何,我的问题是,如何使用ncurses和socket库实现这一点?他们是否有什么好的C++包装(我从阅读NCRISS教程学到的一件事是OOP真的很棒……?< /P> < P>你可能需要使用一些线程来做这件事,所以我来看看。
但是,你不应该害怕长教程,因为你想要达到的不是那么简单,特别是如果C++是你学习的第一种计算机语言。

< P>使用接口的NCURSE听起来是个好主意。您可以执行单线程的基于选择的网络和终端客户端—签出。或者,Boost.asio,单线程或多线程,也应该是一个可靠的选择。

为什么要否决+1,因果报应。也不要忘记,C++不仅仅是面向对象的语言。它是一种多范式语言。C++ API是C++中使用的一组非常好的库。我建议<>代码> Boo::线程< /COD>或C++0x>代码> STD::线程< /代码>初学者。它有一个更友好的界面,并且具有跨平台的优势。不过,线程比大多数人想象的要难。我相信Touzen尝试使用非阻塞方法是正确的,尽管这也不容易。