gpt4 book ai didi

c - 如何使用可以远程连接的控制台创建 linux C 应用程序

转载 作者:太空狗 更新时间:2023-10-29 12:22:51 33 4
gpt4 key购买 nike

我有一个用在 Debian (Stretch) 下运行的 C。中的一个threads 是一个简单的控制台,支持多个命令来控制应用程序。一般此应用程序在以下时间自动启动系统启动并在后台运行控制台线程被禁用。

我正在寻找一种远程“连接”应用程序的方法,以便我可以使用控制台。连接可以是直接使用端口或者我可以直接 ssh 到盒子然后连接到应用程序。

在开发过程中,我只是以交互方式运行应用程序但希望在它有之后进行调试已经开始了。

我认为像 netcat 这样的东西可能有用,但它似乎使用 TCP/IP 端口,而控制台线程只连接到标准输入/标准输出。

有没有办法做到这一点?

最佳答案

阅读有关 Linux 编程的更多信息,也许是旧的 ALP (高级 Linux 编程)书籍(免费 downloadable ),或更新的书籍。另见 syscalls(2)列表。你想要一些 inter-process communication .

您需要了解更多关于 sockets 的信息.参见 sockets(7) ;您可能会使用 Unix 套接字,请参阅 unix(7) (或使用 fifo(7)pipe(7) 等...),甚至是 TCP/IP 套接字,请参阅 tcp(7) (但要注意来自 Internet 的恶意连接)。您需要使用一些多路复用 system call ,例如 poll(2) .在简单的情况下,您的用户可以只使用 telnet连接到您的应用程序(注意,不涉及加密;因此您需要信任该连接,例如在某个内部 LAN 上)。

您可以决定在您的程序中添加一些网络界面(然后成为一个专门的网络服务器,例如提供一些 http://localhost:12345/ 和类似的 URL)。然后使用一些 HTTP server 库,例如 libonionlibhttp .当然,这需要熟悉 Web 技术( HTTPHTML5CSS ,也许是 JavaScriptAJAX )。然后您的用户将使用他/她的浏览器来查询您的应用程序的状态(或者可能与之交互),或者使用一些 HTTP 客户端命令,如 curl .我推荐这条路线,但它确实需要一些工作并熟悉 Web 技术。

您可能还对 libssh 感兴趣图书馆。

您可以决定您的应用程序成为一项服务,并将其连接到 systemd .

附言。在编码之前,您应该花几天时间阅读内容。

关于c - 如何使用可以远程连接的控制台创建 linux C 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405943/

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