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

📄 workingthread.h

📁 这是一个代理服务器程序,它使用多线程
💻 H
字号:
/*
*	File name:		WorkingThread.h
*	Version:		1.0.0.1
*	Programmer:		A.George
*	Organization:	
*	Date(start):	5.23.2000
*	Date(finish):	
*	Description:
					Working thread header file
*/
#ifndef _WORKING_THREAD_AG_INCLUDED_
#define _WORKING_THREAD_AG_INCLUDED_

#include <winsock.h>

// macros for constant definition
#define AGM_OUTPUT				0x500
#define REQUEST_UNAUTHORIZED	1
#define VIRTUAL_RESOURCE		2
#define PARTIAL_CONTENT			4
#define BUFFER_SIZE				2048

// string constant
#define STRCONTENT	"\
<HTML>\
<HEAD><TITLE>\
Connection limit exceeded\
</TITLE></HEAD>\
<BODY>\
<H1>Connection limit exceeded</H1>\
Please change to another proxy server or wait for decreasing of connections number.<P>\
<ADDRESS>Proxy server at %d.%d.%d.%d:%d ag</ADDRESS>\
</BODY>\
</HTML>\
"

#define STR407 "\
<HTML>\
<HEAD><TITLE>\
Proxy authorization required\
</TITLE></HEAD>\
<BODY>\
<H1>Proxy authorization required</H1>\
Username authentication is required for using this proxy.\
Either your browser does not perform proxy authorization, or your\
authorization has failed.<P>\
<ADDRESS>Proxy server at %d.%d.%d.%d:%d ag</ADDRESS>\
</BODY>\
</HTML>\
"
#define VIRTUAL_MAIN_PAGE "\
<HTML>\
<TITLE>Ag Virtual Home Page</TITLE>\
<BODY BACKGROUND=\"http://www.PersonalProxy.com/image/background.jpg\">\
<FONT COLOR=#00ffff>\
<H1>Personal Proxy</H1> by Ag<br><br>\
This is Virtual Page of site www.PersonalProxy.com<P>\
</BODY>\
</HTML>"


// structures
typedef struct tagTHREADPARAM{
	char pszUrl[512];

	BYTE	b1;
	BYTE	b2;
	BYTE	b3;
	BYTE	b4;
	int		nPort;
	char	pszUser[16];
	char	pszPasswd[16];
}THREADPARAM;

//typedef struct tagLISTENPARAM{
//	int		nPortProxy;
//}LISTENPARAM;

typedef struct tagWORKPARAM{
	SOCKET		sckClient;
	sockaddr_in	addr;
}WORKPARAM;

typedef struct tagHTTPHEADER{
	DWORD dwHttpStatus;
	int nVerMajor;
	int nVerMinor;
	char pszStatus[256];
	char pszType[256];
	char pszLocation[256];
	DWORD dwContSize;
	char * pContBegin;
}HTTPHEADER;

typedef struct tagREQUESTHEADER{
	DWORD dwFlag;

	char*		pszAuthBegin;
	char*		pszAuthEnd;
	char*		pszVirtualRes;
	char		pszUrl[512];
	char		pszUserPass[16];
	char*		pszContBegin;

	DWORD		dwRange;
	DWORD		dwContSize;
}REQUESTHEADER;

typedef struct tagGLOBAL{
	HWND	hWnd;

	BYTE	b1;
	BYTE	b2;
	BYTE	b3;
	BYTE	b4;
	int		nPort2nd;
	char	pszUser[64];
	char	pszPasswd[64];

	BYTE	_b1;
	BYTE	_b2;
	BYTE	_b3;
	BYTE	_b4;
	int		nPort;	// local
}GLOBAL;

// global variables
extern int		g_nConnectionCount;
extern HANDLE	g_hConnectionCount;
extern GLOBAL	globalInfo;
extern unsigned long	g_ulIpRefused[100];
extern int		g_nRefused;

// functions
#define OUTPUT(pszMsg) ::SendMessage(globalInfo.hWnd, AGM_OUTPUT, 0, (LPARAM)(LPCTSTR)(pszMsg))
UINT ListeningThread(LPVOID lpVoid);

#endif  //_WORKING_THREAD_AG_INCLUDED_

⌨️ 快捷键说明

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