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