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

📄 srvctrl.h

📁 Web服务器V1.01,Win Socket底层开发
💻 H
字号:
/********************************************************************
** WebSrv -- SrvCtrl.h
**
** Steven Lee	2002.11
********************************************************************/

#ifndef	SRVCTRL_H_
#define	SRVCTRL_H_

#define	HTTP_VERSION_MAJOR	1
#define	HTTP_VERSION_MINOR	1

typedef	struct
{
	SOCKET	hSrvSocket;
	UINT	nPort;
	HANDLE	hSrvThread;
	BOOL	bTerminate;
}SERVERINFOS,far* LPSERVERINFOS;

typedef enum
{
	RES_OK			= 0,
	RES_MOVED		= 1,
	RES_BADREQ		= 2,
	RES_NOTFOUND	= 3,
	RES_NOTSUPPORT	= 4,
}HTTPRES;

#define	MAX_CONTENT_TYPE	128
typedef struct
{
	HTTPRES		httpRes;
	DWORD		dwData;
	TCHAR		szContentType[MAX_CONTENT_TYPE];
	TCHAR		szFileTime[MAX_CONTENT_TYPE];
}HTTPHEADER,far* LPHTTPHEADER;

void	InitSrvCtrl();
void	ReleaseSrvCtrl();

BOOL WINAPI ConsoleCtrlEvent(DWORD dwCtrlType);

BOOL	StartServer(LPTSTR lpszError);
BOOL	StopServer(DWORD dwTimeOut);

DWORD WINAPI SrvThrdProc(LPVOID lpParam);
DWORD WINAPI CltThrdProc(LPVOID lpParam);

BOOL	SendSrvResponse(SOCKET hSocket,LPTSTR pszRecv);
BOOL	GetHTTPFileName(LPCTSTR lpszHeader,LPSTR lpszHTTPFile,SOCKET s);
BOOL	ReqHTTPFileExists(LPTSTR lpszFile);
BOOL	GetHTTPVersion(LPCTSTR lpszHeader,int* lpnMajor,int* lpnMinor);
DWORD	FillHTTPResHeader(LPTSTR lpszResponse,int nSize,LPHTTPHEADER lpHeader);
void	GetContentType(LPCTSTR lpszReqFile,LPTSTR lpszType);
#define	HTTPVersionSupport(nMajor,nMinor)						\
	( (nMajor < HTTP_VERSION_MAJOR)||((nMajor == HTTP_VERSION_MAJOR)&&(nMinor <= HTTP_VERSION_MINOR)) )

BOOL	ServerRunning();

UINT	SetServerPort(UINT nPort);
int		SetMaxUsers(int dwMax);

const DWORD	GetUsersNumber();

void	LogServerMessage(LPCTSTR szLog,SOCKET s);

#endif	//SRVCTRL_H_

⌨️ 快捷键说明

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