我有一台计算机(比如计算机A),只要计算机A通过特定的telnet端口获得连接,它就会启动一个程序。linux c/C++编程telnet连接io重定向
这个程序在计算机A上处理登录,身份验证等。它可以做的工作之一是接收文件。它通过启动gKermit来处理这个问题。
/usr/local/bin/gkermit -e 8000 -w -a /location/x/ -ir
我对计算机B.第二程序这第二个方案将连接到计算机中的
mPid = forkpty(&mPort, buffer, &mCurrTermattr, NULL);
...
if child
{
execl("/usr/bin/telnet", "telnet", mComPort.name.c_str(), NULL);
}
现在该程序可以使用文件描述符M端口的父进程发送接收数据。 (即像登录到计算机A,并告诉它接收文件)
问题是,当计算机B启动gKermit发送文件时,它无法与计算机通信gKermit。
system(gkermit -d gkermit.txt -X -e 8000 -i -s testfile.txt)
人们会想,如果我们使用的是M端口谈论我们能够改变B电脑系统调用标准输入输出边做边使用M端口:
dup2(mPort, STDIN_FILENO)
然而,这并不做的伎俩。任何帮助,将不胜感激。
我不确定我是否理解这个问题。如果不是通过系统(...)调用它,而是尝试从计算机B上的shell到计算机A进行telnet,会发生什么情况? – FreeMemory 2009-01-13 22:13:19