C:如何远程执行命令行程序并从服务器与之交互?

C:如何远程执行命令行程序并从服务器与之交互?,c,server,tcp,client,C,Server,Tcp,Client,我用C语言(在WindowsI中)制作了一个简单的tcp客户端,它由netcat控制。我希望能够远程运行命令行可执行文件(例如字符串),最重要的是能够从netcat或我的服务器与该程序进行交互。((特别是为了在远程计算机上执行操作) 这样做的最佳解决方案是什么 编辑:这里有一个例子:我想在远程计算机上运行字符串程序。要做到这一点,我只需在netcat中写入“字符串”,这个命令将由客户端解释,这个客户端执行字符串二进制。字符串的输出应显示在netcat上 我认为程序的二进制文件可以在远程计算机上,

我用C语言(在WindowsI中)制作了一个简单的tcp客户端,它由netcat控制。我希望能够远程运行命令行可执行文件(例如字符串),最重要的是能够从netcat或我的服务器与该程序进行交互。((特别是为了在远程计算机上执行操作)

这样做的最佳解决方案是什么

编辑:这里有一个例子:我想在远程计算机上运行字符串程序。要做到这一点,我只需在netcat中写入“字符串”,这个命令将由客户端解释,这个客户端执行字符串二进制。字符串的输出应显示在netcat上


我认为程序的二进制文件可以在远程计算机上,但如果有办法将其作为“真实”文件执行,那就太好了远程程序,无需在远程计算机上获取可执行文件。

首先,你的术语有点不正确。你说你写了一个tcp客户端。但似乎你写了一个服务器。因为这个程序应该接收传入的tcp连接和请求,然后发送响应

为了执行命令,您可以使用
exec*
syscalls.
但是,您需要在计算机中提供可执行文件

然后,您需要围绕tcp读取构建一些for循环,为每行发送执行一些操作,并进行一些设置以确保在tcp连接中重定向输出。请参阅
dup
syscall


最后,如果您不想编写一个完整的shell类程序,您可以只
exec
系统shell(
cmd.exe
,我想在windows上),并将所有输入/输出重定向到它。

您希望netcat能够运行shell命令,还是您的“简单tcp客户端”?请澄清您的问题。我只是编辑了我的问题。然后请告诉我们这是否只是为了学习和实验,如果不是,请告诉我们您试图通过现有系统(如SSH)的远程命令执行解决什么问题无法解决问题。这是一个个人项目,必须在没有ssh的情况下完成。我刚刚验证了我的答案,但实际上我编写了一个tcp客户端,而不是服务器,因为我的程序只使用指定的端口连接到指定的地址:我的程序不像服务器那样等待连接,但可能我的答案是错误的。感谢这些提示,我将寻找一些关于这方面的信息。