📄 recv.h
字号:
#include "stdafx.h"
#define FRAME_LEN 1472 //=32*46
#define DATA_LEN FRAME_LEN
#define MEMBLOCK_LEN 1024 //must <1500,because it is used in other place
#define DEFAULT_SNAPLEN FRAME_LEN
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
#include <Winsock2.h>
#define HAVE_REMOTE
#include <pcap.h>
#include <list>
#pragma comment(lib,"Packet.lib")
#pragma comment(lib,"wpcap.lib")
#pragma comment(lib,"Ws2_32.lib")
#define FILE_HEADER_FLAG 0x0001
#define FILE_BODY_FLAG 0x0002
#define FILE_TAILER_FLAG 0x0003
#define MESSAGE_FLAG 0x0004
#define FILE_FOLDER_FLAG 0x0005
#define FILE_INIT_FLAG 0x0006
#define FILE_END_FLAG 0x0007
#define ANSWER_FLAG 0x0008
struct MemNode
{
char data[DATA_LEN];
int len;
int bUsed;
};
struct FILE_HEADER{
DWORD dwFileHash;
DWORD dwFileLen;
char szFileName[MAX_PATH];
};
struct FILE_TAILER{
DWORD dwFileHash;
DWORD dwFileLen;
DWORD dwEndFlag;
};
struct FILE_BODY{
DWORD dwFileHash;
DWORD dwFilePos;
DWORD dwBlockSize;
BYTE byData[DATA_LEN-28];
};
struct FILE_FOLDER{
DWORD dwIP;
DWORD dwFilePathLen;
TCHAR szFilePath[MAX_PATH+1];
};
struct FILE_INFO{
DWORD dwIP;
TCHAR szComputerName[256];
TCHAR szDstFilePath[MAX_PATH+1];
};
typedef struct tagPacketInfo
{
DWORD dwFlag; //数据块的标志
DWORD dwLen; //Union 数据的长度
DWORD ID; //会话表示
union
{
FILE_HEADER fh;
FILE_BODY fb;
FILE_TAILER ft;
FILE_FOLDER ff;
FILE_INFO fi;
char szMessage[DATA_LEN-12];
};
}PacketInfo,*pPacketInfo;
typedef std::list<MemNode > MemNodeList;
static MemNodeList MemBlock;
//static struct MemNode MemBlock[MEMBLOCK_LEN];
//static int MemRead_pos, MemWrite_pos;
static int NEXT_SYN;
static int MY_WIN,ACK;
static char Recv_Status;//'t' or 'f'
static DWORD dwInFileSize;
static TCHAR szFileName[MAX_PATH];
static DWORD dwCheckSum=0;
static HANDLE inputfd=NULL;
static HANDLE input_id=NULL;
static HANDLE recv_id=NULL;
static HANDLE send_id=NULL;
static char Send_Status=0;
static HANDLE outputfd=NULL;
static HANDLE output_id=NULL;
static HANDLE recv_data_id=NULL;
static HANDLE send_ack_id=NULL;
static int LAST_SYN;
static int SAME_SYN_COUNT;
static TCHAR g_szFolderName[MAX_PATH];
//static CRITICAL_SECTION mywin_mutex;
static HANDLE g_hSemaphore=NULL;
static HWND g_hRecvWnd=NULL;
static BOOL g_bInit=FALSE;
void Trace(char* fmt, ...);
int InitRecv(/*CComPtr<IHTMLElement> spCurrMsgElement*/);
void output_thread();
void Suspend();
void Resume();
void End();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -