сокет wxWidgets - PullRequest
       7

сокет wxWidgets

1 голос
/ 28 октября 2011

Я пытаюсь связаться с сервером telnet через программирование сокетов с помощью wxWidgets, однако, после подключения к серверу я не получаю никакого сообщения, хотя я знаю, что на сервере есть приветственное сообщение, я просто получаю ничего, есть определенное сообщение, которое я должен отправить, чтобы инициировать сеанс telnet с сервером, я думал, что достаточно просто подключиться, чтобы затем послать приветственное сообщение. Когда я подключаюсь через замазку, сервер выдает приветственное сообщение сразу же перед любым вводом от меня.

Могу ли я получить ссылку на спецификацию, в которой будет подробно рассказано, как инициировать сеанс telnet, потому что я не смог найти полезную статью из поиска.

1 Ответ

0 голосов
/ 28 октября 2011

Следующая программа подключается к серверу telnet и печатает полученные данные.Обратите внимание, что данные являются двоичными, а не текстовыми - вам нужно изучить RFC854 , чтобы понять, как анализировать протокол telnet.

#include <wx/wx.h>
#include <wx/socket.h>
#include <iostream>
#include <iomanip>

int main () {
  wxInitialize();
  wxSocketClient sockConn(wxSOCKET_WAITALL);
  wxIPV4address addr;
  addr.Hostname(wxT("shell.theworld.com"));
  addr.Service(23);
  if(!sockConn.Connect(addr, true)) {
    std::cout << "Connect failed\n";
    return 1;
  }
  std::string s(' ', 10);
  sockConn.Read(&s[0], 10);
  for(unsigned char c : s)
    std::cout << std::hex << (unsigned int)c << " ";
  std::cout << "\n";
  wxUninitialize();
  return 0;
}
...