Если в вашей системе уже есть программа telnet, вы можете использовать ее, чтобы выполнить всю работу по подключению за вас. Вот программа для GNU / Linux, которую вы можете использовать в качестве отправной точки.
Используется popen для выполнения системной команды telnet. Затем он просто читает все данные из канала (стандартный вывод, если вы только что самостоятельно выполнили команду telnet из оболочки) и печатает их. Когда нет больше данных для чтения, они выходят.
Вы можете отправить данные на сервер, открыв канал в режиме rw
вместо r
, а затем записав, как любой другой файл. Вы можете условно выполнить такие действия, как сканирование ввода на предмет Username:
, а затем отправить, например, строку имени пользователя.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
const char *cmd = "telnet 202.85.101.136 8604";
char buffer[256];
FILE *pipe = popen(cmd, "r");
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);
return 0;
}
Если вы используете Windows, эта ссылка объясняет альтернативу popen.
Есть также программа под названием Expect , которая может помочь вам автоматизировать такие вещи.