• 大小: 28KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2022-02-02
  • 语言: C/C++
  • 标签: Telnet  C++  socket  

资源简介

使用VS2010开发环境,C++语言编写的Telnet客户端,是个控制台程序,目前没有做心跳,需要的自己加上就可以了,代码简洁,就几个面向对象的类,希望对你有参考价值。

资源截图

代码片段和文件信息

// ProtocolRx.cpp: implementation of the CProtocolRx class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “Telnet.h“
#include “ProtocolRx.h“

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern HANDLE stdin1;
extern HANDLE stdout1;
extern HANDLE stderr1;

void nvt(SOCKET serverunsigned char data);
enum _ansi_state
{
  as_normal
  as_esc
  as_esc1
};
static int sa = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE;
char codebuf[256];
unsigned char codeptr;
#define NUM_CODEC 6
typedef void (*LPCODEPROC)(char*);
void ansi_set_screen_attribute(char* buffer);
void ansi_set_position(char* buffer);
void ansi_erase_screen(char* buffer);
void ansi_move_up(char* buffer);
void ansi(SOCKET serverunsigned char data);
void ansi_erase_line(char* buffer);
void ddww_error(SOCKET server_verb verb_option option);
void ddww_echo(SOCKET server_verb verb _option option);
void ddww_supp(SOCKET server_verb verb_option option); //Suppress GA
void ddww_term(SOCKET server_verb verb_option option); //Subnegotiate terminal type
void sbproc_term(SOCKET serverunsigned char data);


struct 
{
  unsigned char cmd;
  LPCODEPROC proc;
} codec[NUM_CODEC] = {
  {‘m‘ansi_set_screen_attribute}
  {‘H‘ansi_set_position}
  {‘K‘ansi_erase_line}
  {‘J‘ansi_erase_screen}
  {‘A‘ansi_move_up}
  {00}
};

CProtocolRx::CProtocolRx()
{

}

CProtocolRx::~CProtocolRx()
{

}
#define NUL     0
#define BEL     7
#define BS      8
#define HT      9
#define LF     10
#define VT     11
#define FF     12
#define CR     13
#define SE    240
#define NOP   241
#define DM    242
#define BRK   243
#define IP    244
#define AO    245
#define AYT   246
#define EC    247
#define EL    248
#define GA    249
#define SB    250
#define WILL  251
#define WONT  252
#define DO    253
#define DONT  254
#define IAC   255


int option_error(_verb_optionintSOCKET);

typedef void(*LPOPTIONPROC)(SOCKET_verb_option);
typedef void(*LPDATAPROC)(SOCKETunsigned char data);


inline void yesreply(SOCKET server _verb verb_option option)
{
  unsigned char buf[3];
  buf[0] = IAC;
  buf[1] = (verb==verb_do)?WILL:(verb==verb_dont)?WONT:(verb==verb_will)?DO:DONT;
  buf[2] = (unsigned char)option;
  send(server(char*)buf30);
}

inline void noreply(SOCKET server _verb verb_option option)
{
  unsigned char buf[3];
  buf[0] = IAC;
  buf[1] = (verb==verb_do)?WONT:(verb==verb_dont)?WILL:(verb==verb_will)?DONT:DO;
  buf[2] = (unsigned char)option;
  send(server(char*)buf30);
}

inline void askfor(SOCKET server _verb verb_option option)
{
  unsigned char buf[3];
  buf[0] = IAC;
  buf[1] = (unsigned char)verb

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-02-18 11:36  C++写的telnet客户端,VS2010编译通过\
     目录           0  2016-02-18 16:53  C++写的telnet客户端,VS2010编译通过\Telnet\
     目录           0  2016-02-18 16:54  C++写的telnet客户端,VS2010编译通过\Telnet\Debug\
     目录           0  2016-02-18 16:54  C++写的telnet客户端,VS2010编译通过\Telnet\ipch\
     文件       13539  2016-02-18 16:51  C++写的telnet客户端,VS2010编译通过\Telnet\ProtocolRx.cpp
     文件        2810  1998-12-26 10:41  C++写的telnet客户端,VS2010编译通过\Telnet\ProtocolRx.h
     文件         447  1998-12-24 05:32  C++写的telnet客户端,VS2010编译通过\Telnet\Resource.h
     文件        1508  1998-12-24 07:27  C++写的telnet客户端,VS2010编译通过\Telnet\SocketDx.cpp
     文件         618  1998-12-24 06:08  C++写的telnet客户端,VS2010编译通过\Telnet\SocketDx.h
     文件        1382  1998-12-26 10:40  C++写的telnet客户端,VS2010编译通过\Telnet\SocketRx.cpp
     文件         699  1998-12-24 07:54  C++写的telnet客户端,VS2010编译通过\Telnet\SocketRx.h
     文件        1332  1998-12-26 10:26  C++写的telnet客户端,VS2010编译通过\Telnet\SocketTx.cpp
     文件         614  1998-12-24 07:53  C++写的telnet客户端,VS2010编译通过\Telnet\SocketTx.h
     文件         293  1998-12-24 05:32  C++写的telnet客户端,VS2010编译通过\Telnet\StdAfx.cpp
     文件        1126  1998-12-24 06:05  C++写的telnet客户端,VS2010编译通过\Telnet\StdAfx.h
     文件         243  1998-12-24 06:11  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.clw
     文件        1689  2001-07-29 10:12  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.cpp
     文件        4893  1998-12-24 08:53  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.dsp
     文件         535  1998-12-24 05:32  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.dsw
     文件      110679  2001-07-29 10:14  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.exe
     文件         326  1998-12-24 05:32  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.h
     文件        1458  1998-12-24 05:32  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.rc
     文件         878  2016-02-18 16:50  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.sln
     文件       11776  2016-02-18 16:53  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.suo
     文件        7864  2016-02-18 16:50  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.vcxproj
     文件        2354  2016-02-18 16:50  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.vcxproj.filters
     文件         143  2016-02-18 16:50  C++写的telnet客户端,VS2010编译通过\Telnet\Telnet.vcxproj.user

评论

共有 条评论