⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 protocol.h

📁 转上传一个
💻 H
字号:
// Protocol.h: interface for the Protocol class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_PROTOCOL_H__521E360B_E6FC_40BB_9F26_A3ECB2EEEBFC__INCLUDED_) 
#define AFX_PROTOCOL_H__521E360B_E6FC_40BB_9F26_A3ECB2EEEBFC__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
#include "winsock2.h" 
 
//Some const used by applications. 
#define ICMP_ECHO (8) 
#define ICMP_ECHOREPLY (0) 
#define ICMP_PACKET_MAX_SIZE (65535) 
#define ICMP_PACKET_MIN_SIZE (8)  
#define RECV_TIMEOUT (0) 
#define SEND_TIMEOUT (1) 
 
//Command used by applications. 
#define EN_COMMAND_GET_MACHINE_IFNO (0) 
#define EN_COMMAND_ACK_GET_MACHINE_INFO (1) 
 
#define EN_COMMAND_LOCK_KEYBOARD (2) 
#define EN_COMMAND_ACK_LOCK_KEYBOARD (3) 
 
#define EN_COMMAND_LOCK_MOUSE (4) 
#define EN_COMMAND_ACK_LOCK_MOUSE (5) 
 
 
//Data structure used by applications. 
//Ip header. 
typedef struct ipheader 
{ 
	unsigned char ucVer_HLen; 
	unsigned char ucTos; 
	unsigned short usTotalLen; 
	unsigned short usId; 
	unsigned short usSign_FragOff; 
	unsigned char ucTtl; 
	unsigned char ucUpProtocol; 
	unsigned short usCheckSum; 
	unsigned long ulSrcIpAddr; 
	unsigned long ulDestIpAddr; 
}IP_HEADER; 
 
//Icmp header used by the ping application. 
typedef struct icmpheader 
{ 
	unsigned char ucType; 
	unsigned char ucCode; 
	unsigned short usCheckSum; 
	unsigned short usId; 
	unsigned short usSeq; 
}ICMP_HEADER; 
 
//Private protocol used by manager. 
typedef struct commandheader 
{    
	unsigned char ucVerHLen;//Version and length of header. 
	unsigned char ucSign;//Sign bits. | 0 | 0 | 0 | 0 | 0 | 0 | 0 | open tunnel | 
	unsigned char ucType;//command type. 
	unsigned char ucCode;//command code. 
	unsigned long ulSessionId;//Used by manager to match sessions between client and server. 
	char pcAuthCode[10];//sign indicates that the packet is  sent by our application. 
    //Options may be added here. 
}COMMAND_HEADER; 
 
typedef struct userdata 
{ 
	char * pcData; 
	int nDataLen; 
	char pcDestIpAddr[50]; 
}USER_DATA; 
 
class Protocol   
{ 
public: 
	Protocol(); 
	BOOL InitProtocol(void); 
	BOOL CleanProtocol(void); 
	BOOL SetTimeOut(int nFlag, int nValue); 
	int SendIcmpPacket(char * pcDataBuffer, int nBuffLen, int nOption \ 
		, char * pcDestIpAddr); 
 
	int RecvIcmpPacket(char * pcDataBuffer, int nBuffLen, int nOption ); 
	virtual ~Protocol(); 
	 
protected: 
    BOOL CreateIcmpPacket(char * pcDataBuffer, int nBuffLen, int nOption); 
	int ParseIcmpPacket(char * pcDataBuffer, int nBuffLen, int nOption); 
	BOOL CalculateCheckSum(unsigned short * pusDataBuffer, int nBuffLen \ 
		, unsigned short * pusCheckSum); 
	//test 
    void RecordChar(int nValue); 
	void RecordPacket(int nBytes); 
 
private: 
	SOCKET m_rawSocket; 
	int m_nSendTimeOut; 
	int m_nRecvTimeOut; 
	char * m_pucSendBuffer; 
    char * m_pucRecvBuffer; 
	sockaddr_in m_DestSocketAddr; 
}; 
 
#endif // !defined(AFX_PROTOCOL_H__521E360B_E6FC_40BB_9F26_A3ECB2EEEBFC__INCLUDED_) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -