使用ncurses接收异步用户和外部输入
我正在制作一个两人游戏,由一名玩家通过键盘控制,同时使用消息队列接收来自服务器程序的输入。最初,我试图在父进程中实现播放器控制台,并使子进程对来自服务器的消息作出反应,但每次我用子进程修改屏幕时,它都会删除我在父进程中所做的所有更改—换句话说,这些进程有单独的屏幕。看起来必须有一个进程同时管理键盘输入和服务器输入,但我不知道如何异步完成使用ncurses接收异步用户和外部输入,c,input,ncurses,C,Input,Ncurses,我正在制作一个两人游戏,由一名玩家通过键盘控制,同时使用消息队列接收来自服务器程序的输入。最初,我试图在父进程中实现播放器控制台,并使子进程对来自服务器的消息作出反应,但每次我用子进程修改屏幕时,它都会删除我在父进程中所做的所有更改—换句话说,这些进程有单独的屏幕。看起来必须有一个进程同时管理键盘输入和服务器输入,但我不知道如何异步完成 有人知道怎么做吗?或者,我还可以使用其他哪些库来使用GUI制作这样的游戏?好的,如果有人感兴趣,我有解决方案。我使用unistd.h中的STDIN_FILENO
有人知道怎么做吗?或者,我还可以使用其他哪些库来使用GUI制作这样的游戏?好的,如果有人感兴趣,我有解决方案。我使用unistd.h中的STDIN_FILENO流和poll函数从键盘和管道中读取数据,从而通知来自服务器的消息。为什么不使用线程?还是相同的全局屏幕结构?不使用它的副本。有一些用于异步操作的消息传递库,如dbus、zmq或其他快速ipc技术。