1
我正在嘗試在C++中建立本地Telnet會話併發送命令/接收數據。現在我有:popen telnet中的子命令
const char *cmd = "telnet 127.0.0.1 2006";
char buffer[256];
FILE *pipe = popen(cmd, "rw");
//if(!pipe) { perror("popen"); exit(-1); }
while(fgets(buffer, sizeof(buffer), pipe) != NULL &&
!feof(pipe))
{
if(ferror(pipe)) { perror("fgets"); break; }
/* Here you do whatever you want with the data. */
printf("%s", buffer);
}
pclose(pipe);
這是打開telnet連接。我需要發送如下命令:「/ neighbors」,然後接收它將返回的數據。理想情況下,會話將保持打開狀態,我會每隔20秒左右重新查詢「/ neighbors」。
我想我需要用fork()創建一個子進程,但我對這個過程很陌生。
千分之一。從telnet和popen開始,現在即將使用fork,OP將會遇到十幾個問題。 – 2011-04-24 23:09:22
我必須使用telnet,因爲我正在運行一個終端應用程序,我沒有創建只輸出到telnet的數據,我需要將它拉入C++ – alyx 2011-04-24 23:12:57
'telnet'程序只是將終端會話連接到遠程socket服務器。所有'telnet'都使用常規套接字API函數來建立與服務器的連接。服務器不知道什麼程序正在進行連接。因此,您可以使用套接字API函數將您自己的*連接到服務器。 – 2011-04-24 23:14:41