?? tftp.h
字號:
// Tftp.h: interface for the CTftp class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TFTP_H__A1523C0C_3FC7_41CB_B5D3_7A4949DC14C8__INCLUDED_)
#define AFX_TFTP_H__A1523C0C_3FC7_41CB_B5D3_7A4949DC14C8__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <stdio.h>
#include <winsock.h>
#include <conio.h>
#include <stdlib.h>
#define WSA_MAJOR_VERSION 1
#define WSA_MINOR_VERSION 1
#define WSA_VERSION MAKEWORD(WSA_MAJOR_VERSION, WSA_MINOR_VERSION)
// read/write request packet format
// 2 bytes string 1 byte string 1 byte
// ------------------------------------------------
// | Opcode | Filename | 0 | Mode | 0 |
// ------------------------------------------------
#define TFTP_RRQ 1 //Read request (RRQ)
#define TFTP_WRQ 2 //Write request (WRQ)
// DATA packet format
// 2 bytes 2 bytes n bytes
// ----------------------------------
// | Opcode | Block # | Data |
// ----------------------------------
#define TFTP_DATA 3 //Data (DATA)
// ACK packet format
// 2 bytes 2 bytes
// ---------------------
// | Opcode | Block # |
// ---------------------
#define TFTP_ACK 4 //Acknowledgment (ACK)
// ERROR packet format
// 2 bytes 2 bytes string 1 byte
// -----------------------------------------
// | Opcode | ErrorCode | ErrMsg | 0 |
// -----------------------------------------
#define TFTP_ERROR 5 //Error (ERROR)
#define TFTP_NETASCII 0
#define TFTP_OCTET 1
#define TFTP_WSTAT_FIRSTACK 0
#define TFTP_WSTAT_NEXTACK 1
#define TFTP_WSTAT_LASTACK 2
#define MAX_RETRY 3
#define TFTP_NOTEND_DATALEN 512+2+2
#define TFTP_PORT_NUMBER 69
#pragma comment( lib, "Wsock32.lib" )
typedef enum
{
TFTP_NetAsii=0,
TFTP_Octet=1,
}TFTPMODE;
typedef enum
{
TFTP_OK=0,
TFTP_INIT_WINSOCK_ERROR=1,
TFTP_FILE_NOEXITES_ERROR=2,
TFTP_FILE_EXITES_ERROR=3,
TFTP_FILE_READ_ERROR=4,
TFTP_INPUT_FILE_ERROR=5,
TFTP_WINSOCK_ERROR=6,
TFTP_TIMEOUT_ERROR=7,
TFTP_ACK_ERROR=8,
}TFTPERROR;
class CTftp
{
public:
CTftp();
virtual ~CTftp();
public:
UINT GetFile(char *filename);
UINT PutFile(char *localfile,char *remotefile);
private:
// int StrIPCmd(char *s,char cmd[][256]);
int MakeReq(char type,int mode,char *filename,char *buffer);
int MakeAck(unsigned short BlockNum,char *buffer);
int MakeData(int num,char *data,int datasize,char *buffer);
private:
BOOL InitSock(void);
SOCKET Sock;
public:
int FileMode;
char DestHost[256];
long ReviceSendBytes;
CProgressCtrl *sb;
};
#endif // !defined(AFX_TFTP_H__A1523C0C_3FC7_41CB_B5D3_7A4949DC14C8__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -