gpt4 book ai didi

linux - 创建一个简单的 Linux API

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:48 24 4
gpt4 key购买 nike

我在 OpenWRT 风格的路由器上有一个简单的应用程序。目前是用 C++ 编写的。路由器(嵌入式 Linux)的磁盘空间和 RAM 非常有限。例如,没有足够的空间来安装 Python。

所以,我想通过网络控制这个守护程序。我已经阅读了一些关于创建套接字和监听端口事件的教程。但我没能将流程集成到 C++ 类中。而且我一直无法弄清楚如何解码收到的信息,或者如何发送响应。

我读过的所有教程都是死胡同,它们向您展示了如何制作一个服务器,该服务器基本上只是阻塞直到它收到某些东西,然后在它收到某些东西时返回一条消息。

有没有更高级别的东西可以用来做这种事情?

最佳答案

听起来您要问的是“我如何构建一个简单的网络服务来接受来自客户端的请求并做出响应?”这有很多部分——如何构建服务框架、如何编码和解码请求、如何处理请求以及如何将它们联系在一起?

听起来您在处理第一部分和最后一部分时遇到了问题。组织像这样的简单服务有两种基本方法——线程方法和事件方法。

在线程方法中,您为每个传入连接创建一个线程。该线程从该连接(文件描述符)读取消息(请求),处理它们,然后写回响应。当连接消失时,线程退出。您有一个主要的“监听”线程,它接受传入的连接并创建新线程来处理每个连接。

在事件方法中,每个传入请求都成为一个事件。然后你有事件处理程序来处理这些事件,发回响应。重要的是事件处理程序不要立即阻塞和完成,否则服务可能会被锁定。您的程序有一个主事件循环,它等待传入的事件(通常在单个 pollselect 调用时阻塞)并根据需要读取和分派(dispatch)每个事件。

关于linux - 创建一个简单的 Linux API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7958759/

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