📄 transferfile.h
字号:
#ifndef __TRANSFER_FILE_H__
#define __TRANSFER_FILE_H__
#include <WinSock.h>
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef struct _PROGRESS{
DWORD totallen;
DWORD position;
BYTE per; //progress percent
BYTE flag; //0: in progress, 1: complete, 0x80: locked
LPVOID event; //show porgress event: DEV_SHOWPROGRESSEVENT
WORD index; //thread index
}PROGRESS, *PPROGRESS;
typedef DWORD (WINAPI *DEV_SHOWPROGRESSEVENT)(PPROGRESS progress);
typedef struct _TRAN_CTRL{
BYTE status;
BYTE sequence;
DWORD offset;
DWORD fsize;
DWORD lastpos;
}TRAN_CTRL, *PTRAN_CTRL;
typedef struct _TRAN_THREAD{
SOCKET sock;
HANDLE hfile;
HANDLE thread;
SOCKADDR_IN addr;
PTRAN_CTRL ctrl;
DEV_SHOWPROGRESSEVENT progress;
}TRAN_THREAD, *PTRAN_THREAD;
typedef struct _TRAN_LIST{
PTRAN_THREAD context;
LPVOID next;
}TRAN_LIST, *PTRAN_LIST;
typedef struct _CONNECT_LIST{
SOCKET sock;
SOCKADDR_IN addr;
LPVOID next;
}CONNECT_LIST, TCONNECT_LIST, *PCONNECT_LIST;
typedef struct _TF_COMMAND{
BYTE header;
BYTE cmd;
BYTE seq;
BYTE opcode;
BYTE low;
BYTE high;
PBYTE data;
BYTE bcc;
}TF_COMMAND, *PTF_COMMAND;
#define TRAN_STOP 0x00
#define TRAN_START 0x01
#define TRAN_FIN 0x01
#define TRAN_SYN 0x02
#define TRAN_FAIL 0x04
#define TRAN_ACK 0x08
#define TRAN_REQ_READ 0x00
#define TRAN_REQ_WRITE 0x01
#define TRAN_REQ_DATA 0x00
#define TRAN_REQ_DIR 0x01
#define TRAN_BUFFER_SIZE 1024 * 4 //0x0500
#define COMMAND_HEADER 0x45
#define COMMAND_HEADER_LENGTH 0x07
#define TRAN_TIMEOUT_TIME 0x0800
#define INIT_CMD(c) \
c->header = COMMAND_HEADER; \
c->cmd = 0; \
c->seq = 0; \
c->opcode = 0; \
c->low = 0; \
c->high = 0; \
c->data = NULL; \
c->bcc = 0;
#define INVALID_COMMAND(A) ((A >= TRAN_REQ_READ) && (A <= TRAN_REQ_WRITE))
//extern DWORD WINAPI net_TransferFile(unsigned char * fileName, unsigned char * sip, WORD port);
//extern DWORD WINAPI net_Initialization();
#define CM_SOCKETMESSAGE WM_USER + 0x0001
#define CM_DEFERFREE WM_USER + 0x0002
#define CM_LOOKUPCOMPLETE WM_USER + 0x0003
typedef struct _NETSOCKETMESSAGE{
SOCKET sock;
WORD event;
WORD error;
DWORD msg;
DWORD result;
}NETSOCKETMESSAGE, TNETSOCKETMESSAGE, *PNETSOCKETMESSAGE;
#define RET_SUCCESS 0x00
#define RET_FAILURE 0x80
extern BYTE inet_Calc_BCC(PBYTE buf, WORD len);
extern void inet_Reply_Remote(SOCKET s, PTF_COMMAND pcmd);
#define BCC inet_Calc_BCC
#define REPLY_REMOTE inet_Reply_Remote
#endif //__TRANSFER_FILE_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -