我正在使用dbus进行第一步(使用glib C API),并且已经遇到了GLib的问题。 Lib在主循环中提供dbus数据
g_main_loop_run(loop);
对于我的应用程序,我确实需要第二个套接字充当TCP-IP服务器。如果两个插座都堵住了,我该如何使用?该应用程序在嵌入式硬件(Linux)上运行,并且只有非常有限的资源,因此不幸的是,多线程不是一种选择。
最佳答案
如果还没有,请阅读the manual。它包含许多直接回答您问题的信息。特别是,可以通过调用GSource
创建g_source_new
。作为其一部分,一组回调与新gsource相关联。然后,使用类似g_source_add_unix_fd
的方法将套接字fd添加到gsource。最后,使用g_source_attach
将gsource附加到主上下文(或所需的任何上下文)。然后,只要套接字有一个事件,您的回调将作为主循环的一部分被调用。