Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建一个带有控制台的LinuxC应用程序,我可以远程连接到控制台_C_Linux_Console Application_Remote Access_Debian Stretch - Fatal编程技术网

如何创建一个带有控制台的LinuxC应用程序,我可以远程连接到控制台

如何创建一个带有控制台的LinuxC应用程序,我可以远程连接到控制台,c,linux,console-application,remote-access,debian-stretch,C,Linux,Console Application,Remote Access,Debian Stretch,我有一个多线程应用程序是用 在Debian(Stretch)下运行的C。其中一个 threads是一个简单的控制台,支持多个线程 用于控制应用程序的命令。正常地 此应用程序在以下情况下自动启动: 系统在后台引导和运行,并使用 控制台线程已禁用 我正在寻找一种远程“连接”到应用程序的方法,以便使用控制台。 连接可以是直接使用 端口或我可以直接ssh到box,然后 连接到应用程序 在开发过程中,我只是以交互方式运行应用程序 但希望选项在完成后进行调试 已经开始了 我原以为像netcat这样的东西可能

我有一个多线程应用程序是用 在Debian(Stretch)下运行的C。其中一个 threads是一个简单的控制台,支持多个线程 用于控制应用程序的命令。正常地 此应用程序在以下情况下自动启动: 系统在后台引导和运行,并使用 控制台线程已禁用

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

在开发过程中,我只是以交互方式运行应用程序 但希望选项在完成后进行调试 已经开始了

我原以为像netcat这样的东西可能管用,但它确实管用 似乎使用TCP/IP端口,而控制台线程只连接到stdin/stdout


有什么方法可以做到这一点吗?

阅读更多关于Linux编程的内容,可能是旧的(高级Linux编程)书籍(免费)或更新的内容。另见清单。你想要一些

你需要更多地了解。看见您可以使用Unix套接字,请参阅(或使用,等等),甚至可以使用TCP/IP套接字,请参阅(但请注意来自Internet的恶意连接)。您需要使用一些多路复用,例如。在简单的情况下,您的用户可以只使用连接到您的应用程序(注意,不涉及加密;因此您需要信任连接,例如,在某些内部LAN上)

您可以决定向您的程序添加一些web界面(然后成为一个专门的web服务器,例如为一些
http://localhost:12345/
和类似的URL)。然后使用一些HTTP服务器库,例如或。当然,这需要熟悉Web技术(,&,可能还有)。然后,您的用户将使用他/她的浏览器查询应用程序的状态(或者可能与应用程序交互),或者使用一些HTTP客户端命令,如。我推荐这条路线,但它确实需要一些工作和对Web技术的熟悉

你可能也对图书馆感兴趣

您可以决定您的应用程序成为一个服务,并将其与之接口


注:在编码之前,你应该花几天时间阅读资料。

如果你的程序在控制台上以交互方式运行时可以工作,并且你不想承担添加网络文本界面的(重要!)工作,那么你可以在启动时在
屏幕下启动它<代码>屏幕
设置虚拟终端I/O环境,您可以将真实终端连接到该环境,并与运行在该环境中的程序对话。完成后,您可以断开与
屏幕的连接,程序将不知道两者之间的区别。使用虚拟终端似乎是正确的选择。无论是
tmux
还是
screen
都可以达到这个目的。好主意。我将研究使用其中一种。同时,感谢巴兹尔指出了一些伟大的研究主题。