gpt4 book ai didi

c - 如何创建一个新线程以使 pcap_loop() 和 gtk_main() 兼容?

转载 作者:行者123 更新时间:2023-12-03 03:30:31 24 4
gpt4 key购买 nike

这两个函数都是无限循环,

一旦在同一线程中调用,程序就会挂起。

gtk_main(); 
...
pcap_loop(adhandle, 0, packet_handler, NULL);

当我点击“开始”按钮时,我希望pcap开始工作;如果我按下“停止”按钮,pcap > 停止

如何创建子线程并运行 pcap_loop(adhandle, 0, packet_handler, NULL);

最佳答案

除非我遗漏了什么,否则你的问题是 GTK+ 和libpcap 是围绕主循环触发的事件进行组织的。没有翻阅文档,我不知道 GTK+,但是有是 libpcap 的另一种操作模式:您可以使用 pcap_next() 或pcap_next_ex() 而不放弃对程序流程的控制。

应该可以注册一个定期调用的函数这两个函数之一使用 g_timeout_add()g_idle_add(),无需搞乱线程和互斥机制总共。

关于c - 如何创建一个新线程以使 pcap_loop() 和 gtk_main() 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2793293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com