srvctrl.h

来自「Web服务器V1.01,Win Socket底层开发」· C头文件 代码 · 共 68 行

H
68
字号
/********************************************************************
** 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 + =
减小字号Ctrl + -
显示快捷键?