Сервер Telnet всегда возвращает мусор при подключении к нему с помощью Boost Asio - PullRequest
0 голосов
/ 31 января 2019

Итак, я пытаюсь создать клиент telnet, который подключается к некоторой части адреса для работы, а часть для Boost::Asio цели обучения.

Мой маленький проект имеет три обработчика:

Обработчик разрешения:

void resolverHandler(const boost::system::error_code& ec, ip::tcp::resolver::iterator iter) {
    if (ec) {
        cout << "Resolved failed with message: " << ec.message() << endl;
    }
    else {
        ip::tcp::endpoint endpoint = *iter;
        cout << "Connection to: " << endpoint.address() << ":" << endpoint.port() << endl;
        tcpSocket.async_connect(endpoint, connectHandler);
    }
}  

Обработчик подключения

   void connectHandler(const boost::system::error_code& ec) {
        if (ec) {
            cout << "Connect failed with message: " << ec.message() << endl;
        }
        else {
            cout << "Connection established" << endl;
            tcpSocket.async_read_some(buffer(_data), readHandler);
        }
    }

Обработчик чтения:

void readHandler(const boost::system::error_code& ec, size_t ammountOfBytes) {
    if (ec) {
        cout << "Read failed with message: " << ec.message() << endl;
    }
    else {
        cout << ammountOfBytes << endl;
        cout << _data.data() << endl;
        tcpSocket.async_read_some(buffer(_data), readHandler);
    }
}

И это моя основная функция:

io_service ioservice;
ip::tcp::resolver resolver(ioservice);
ip::tcp::socket tcpSocket(ioservice);
array<char, 16> _data;
ip::tcp::resolver::query query("192.168.200.200", "23");


int main() {

    resolver.async_resolve(query, resolverHandler);

    ioservice.run();

    return 0;
}

Но я всегда получаю мусор вот так:

Connection to: 192.168.206.226:23
Connection established
15
 ² ²  ²# ²' ²$

Я признаю, что я новичок в telnet, но я неуверен, почему я получаю этот ответ?Не уверен, что мне нужно завершить данные, которые я получаю перед печатью, обнулять, но даже при этом у меня тот же ответ.

Вот обычный ответ, который я должен получить - пробовал с Windows Telnet:

Welcome Message (localhost) (ttyp0)

login:

Цените, если у кого-то есть идеи, что делать.

...