我有一臺計算機(比如計算機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