Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
使用ncurses接收异步用户和外部输入_C_Input_Ncurses - Fatal编程技术网

使用ncurses接收异步用户和外部输入

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

我正在制作一个两人游戏,由一名玩家通过键盘控制,同时使用消息队列接收来自服务器程序的输入。最初,我试图在父进程中实现播放器控制台,并使子进程对来自服务器的消息作出反应,但每次我用子进程修改屏幕时,它都会删除我在父进程中所做的所有更改—换句话说,这些进程有单独的屏幕。看起来必须有一个进程同时管理键盘输入和服务器输入,但我不知道如何异步完成


有人知道怎么做吗?或者,我还可以使用其他哪些库来使用GUI制作这样的游戏?

好的,如果有人感兴趣,我有解决方案。我使用unistd.h中的STDIN_FILENO流和poll函数从键盘和管道中读取数据,从而通知来自服务器的消息。

为什么不使用线程?还是相同的全局屏幕结构?不使用它的副本。有一些用于异步操作的消息传递库,如dbus、zmq或其他快速ipc技术。