The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Немогу авторизоваться на свиче клиентом (socket , С )"
Отправлено maximka, 22-Окт-09 18:03 
7.2-RELEASE-p2
Задача следующая:
нужна программка которая подключалась к свичам и делала какието действия, аналог на perle работает на ура, но там я испльзую библиотеку телнета,а в С нашел только такой вариант, если есть какая то библиотека для С подскажите буду признатилен)
#include <stdio.h>
#include <netdb.h>
#include <time.h>
#include <arpa/telnet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

char Buffer[204800];
char out_buf[BUFSIZ];
int hSocket,i, rd;

int main()
{
    char *arg_host = "192.168.14.2";
    int sock;
    struct sockaddr_in addr;
    struct hostent *srvinfo;


        sock = socket(AF_INET, SOCK_STREAM, 0);
    if(sock < 0)
    {
        perror("socket");
        exit(1);
    }

    addr.sin_family = AF_INET;
    addr.sin_port = htons(23); //
    srvinfo = gethostbyname(arg_host);
    addr.sin_addr = *(struct in_addr *) srvinfo->h_addr;
    if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("connect");
        exit(2);
    }

sleep(1);
memset(Buffer,0, sizeof(Buffer));
rd=recv(sock, Buffer, sizeof(Buffer), 0);
printf("Recieved %d bytes: %s\n", rd, Buffer);
sleep(1);

memset(out_buf,0, sizeof(out_buf));
sprintf(out_buf, "%s", "Admin\r\n");//printf(out_buf);
rd = send(sock, (void*)&out_buf, sizeof(out_buf), 0);
sleep(1);
memset(Buffer,0, sizeof(Buffer));
rd = recv(sock, Buffer, sizeof(Buffer), 0);
printf("Recieved %d bytes: %s\n",rd, Buffer);

sleep(1);
memset(out_buf,0, sizeof(out_buf));
sprintf(out_buf, "%s", "password\r\n");//printf(out_buf);
rd = send(sock, (void*)&out_buf, sizeof(out_buf), 0);
sleep(1);
memset(Buffer,0, sizeof(Buffer));
rd = recv(sock, Buffer, sizeof(Buffer), 0);
printf("Recieved %d bytes: %s\n",rd, Buffer);


    close(sock);

    return 0;
}
когда запускаю выдает:
server# ./telcli
Recieved 26 bytes: ��������

UserName:
Recieved 39 bytes: Admin
Password:
UserName:
UserName:
Recieved 43 bytes: password
Password:authentication failed

server#

такое ощущение что "\r\n" нажатие Enter не работает, вернее срабатывает один раз.
почему не работает?
Заранее всем спасибо!!!

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру