2011-10-28 3 views
1

wxWidgets를 사용하여 소켓 프로그래밍을 통해 텔넷 서버와 통신하려고하지만 서버에 연결 한 후 서버에서 환영 메시지가 있다는 것을 알고 있더라도 다시 메시지가 나타나지 않습니다. 나는 아무것도 얻지 못했습니다. 서버와 텔넷 세션을 시작하기 위해 보내야 할 특정 메시지가 있습니다. 연결 만하면 환영 메시지를 보낼 수 있다고 생각했습니다. 퍼티를 통해 연결하면 서버가 나에게 입력하기 전에 즉시 환영 메시지를 표시합니다.wxWidgets socket telnet

텔넷 세션을 시작하는 방법을 자세히 설명하는 스펙에 대한 링크를 얻을 수 있습니까? 아직 검색에서 유용한 기사를 찾을 수 없었습니다.

+1

사람들이 실제로 대답했다면 ... 나는이 웹 사이트에서 내가 뭘 잘못하고 있는지 말해주지 않았다. – csteifel

답변

0

다음 프로그램은 텔넷 서버에 연결하여받은 데이터를 인쇄합니다. 데이터는 텍스트가 아니라 바이너리입니다. telnet 프로토콜을 구문 분석하는 방법을 이해하려면 RFC854을 조사해야합니다.

#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; 
}