我正在使用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附加到主上下文(或所需的任何上下文)。然后,只要套接字有一个事件,您的回调将作为主循环的一部分被调用。

09-13 14:29