Web服务器.docx
- 文档编号:24684666
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:72
- 大小:39.73KB
Web服务器.docx
《Web服务器.docx》由会员分享,可在线阅读,更多相关《Web服务器.docx(72页珍藏版)》请在冰豆网上搜索。
Web服务器
//WebServer.h:
mainheaderfilefortheWEBSERVERapplication
//
#if!
defined(AFX_WEBSERVER_H__3F794A8E_734C_4694_8F25_F7CC03C513E5__INCLUDED_)
#defineAFX_WEBSERVER_H__3F794A8E_734C_4694_8F25_F7CC03C513E5__INCLUDED_
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
#ifndef__AFXWIN_H__
#errorinclude'stdafx.h'beforeincludingthisfileforPCH
#endif
#include"resource.h"//mainsymbols
/////////////////////////////////////////////////////////////////////////////
//CWebServerApp:
//SeeWebServer.cppfortheimplementationofthisclass
//
classCWebServerApp:
publicCWinApp
{
public:
CWebServerApp();
//Overrides
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CWebServerApp)
public:
virtualBOOLInitInstance();
//}}AFX_VIRTUAL
//Implementation
//{{AFX_MSG(CWebServerApp)
//NOTE-theClassWizardwilladdandremovememberfunctionshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.
#endif//!
defined(AFX_WEBSERVER_H__3F794A8E_734C_4694_8F25_F7CC03C513E5__INCLUDED_)
//WebServer.cpp:
Definestheclassbehaviorsfortheapplication.
//
#include"stdafx.h"
#include"WebServer.h"
#include"WebServerDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CWebServerApp
BEGIN_MESSAGE_MAP(CWebServerApp,CWinApp)
//{{AFX_MSG_MAP(CWebServerApp)
//NOTE-theClassWizardwilladdandremovemappingmacroshere.
//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!
//}}AFX_MSG
ON_COMMAND(ID_HELP,CWinApp:
:
OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CWebServerAppconstruction
CWebServerApp:
:
CWebServerApp()
{
//TODO:
addconstructioncodehere,
//PlaceallsignificantinitializationinInitInstance
}
/////////////////////////////////////////////////////////////////////////////
//TheoneandonlyCWebServerAppobject
CWebServerApptheApp;
/////////////////////////////////////////////////////////////////////////////
//CWebServerAppinitialization
BOOLCWebServerApp:
:
InitInstance()
{
AfxEnableControlContainer();
//Standardinitialization
//Ifyouarenotusingthesefeaturesandwishtoreducethesize
//ofyourfinalexecutable,youshouldremovefromthefollowing
//thespecificinitializationroutinesyoudonotneed.
#ifdef_AFXDLL
Enable3dControls();//CallthiswhenusingMFCinasharedDLL
#else
Enable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically
#endif
SetRegistryKey("AcID_Soft");
//弹出对话框
CWebServerDlgdlg;
m_pMainWnd=&dlg;
intnResponse=dlg.DoModal();
if(nResponse==IDOK)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithOK
}
elseif(nResponse==IDCANCEL)
{
//TODO:
Placecodeheretohandlewhenthedialogis
//dismissedwithCancel
}
//Sincethedialoghasbeenclosed,returnFALSEsothatweexitthe
//application,ratherthanstarttheapplication'smessagepump.
returnFALSE;
}
2.为对话框添加控件
在程序的主对话框界面中按照图6-13添加相应的可视控件对象,并按照表6-13修改控件的属性。
表6-13对话框中的控件属性
控件类型
控件ID
Caption
静态文本statictext
IDC_STATIC
服务器根目录设置
静态文本statictext
IDC_STATIC
默认文件名
静态文本statictext
IDC_STATIC
服务器端口号
静态文本statictext
IDC_STATIC
超时时间设定
静态文本statictext
IDC_STATIC
0-NoTimeout
编辑框editbox
IDC_HOMEDIR
编辑框editbox
IDC_DEFINDEXFILE
编辑框editbox
IDC_PORT
编辑框editbox
IDC_PTO
静态文本statictext
IDC_STATIC
服务器控制
命令按钮button
IDC_START
启动
命令按钮button
IDC_STOP
停止
命令按钮button
IDC_RESET
重新启动
命令按钮button
IDOK
退出
静态文本statictext
IDC_STATIC
服务器状态
编辑框editbox
IDC_STATUS
Idle...
静态文本statictext
IDC_STATIC
接收到的字节(KB):
静态文本statictext
IDC_STATIC
发送出的字节(KB):
静态文本statictext
IDC_STATIC
请求数量:
静态文本statictext
IDC_STATIC
访问数量:
静态文本statictext
IDC_STATIC
活动连接数:
静态文本statictext
IDC_BYTESRECV
静态文本statictext
IDC_BYTESENT
静态文本statictext
IDC_REQUESTS
静态文本statictext
IDC_VISITORS
静态文本statictext
IDC_ACTIVECONN
3.定义控件的成员变量
按照表6-14,用类向导(ClassWizard)为对话框中的控件对象定义相应的成员变量。
表6-14控件对象的成员变量
控件ID
ControlIDs
变量名称
MemberVariableName
变量类别
Category
变量类型
VariableType
IDC_BYTESRECV
m_nBytesRecv
Control
CStatic
IDC_BYTESENT
m_nBytesSent
Control
CStatic
IDC_REQUESTS
m_nRequests
Control
CStatic
IDC_VISITORS
m_nVisitors
Control
CStatic
IDC_ACTIVECONN
m_nActiveConn
Control
CStatic
IDC_HOMEDIR
m_szHomeDir
Value
CString
IDC_DEFINDEXFILE
m_szDefIndex
Value
CString
IDC_PORT
m_Port
Value
Int
IDC_PTO
m_PTO
Value
Int
IDC_STATUS
m_szStatus
Value
CString
4.添加成员变量的初始化代码
在FtpDlg.cpp文件的OnInitDialog()函数中添加成员变量的初始化代码。
对服务器名,登录用户名,登录口令的控件变量赋初值。
BOOLCFtpDlg:
:
OnInitDialog()
{
.................//前面是MFC应用程序向导和类向导自动生成的代码
//TODO:
Addextrainitializationhere
m_strFtpSite=_T("");//初始化服务器域名
m_strName=_T("");//初始化登录用户名
m_strPwd=_T("");//初始化登录口令
//更新界面
UpdateData(FALSE);//更新界面
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
5.为对话框中的控件对象添加事件响应函数
按照表6-15,用类向导(ClassWizard)为对话框中的控件对象添加事件响应函数。
表6-15对话框控件的事件响应函数
控件类型
对象标识ObjectID
消息Message
函数Memberfunctions
命令按钮
IDC_START
BN_CLICKED
OnStart
命令按钮
IDC_STOP
BN_CLICKED
OnStop
命令按钮
IDC_RESET
BN_CLICKED
OnReset
命令按钮
IDOK
BN_CLICKED
OnOK
6.为CFtpDlg类添加其它的成员函数
BOOLCFtpDlg:
:
Download(CStringstrSourceName,CStringstrDestName)
BOOLCFtpDlg:
:
Upload(CStringstrSourceName,CStringstrDestName)
分别用于文件的下载和上传。
7.手工添加包含语句
在CFtpDlg类的FtpDlg.cpp文件中添加对于Afxinet.h的包含命令,来获得对于MFCWinInet类的支持。
8.添加事件函数和成员函数的代码
9.进行测试
//WebServerDlg.h:
headerfile
//
#if!
defined(AFX_WEBSERVERDLG_H__8F4AD293_7AED_4ED5_A263_0ED2ED7032C8__INCLUDED_)
#defineAFX_WEBSERVERDLG_H__8F4AD293_7AED_4ED5_A263_0ED2ED7032C8__INCLUDED_
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
/////////////////////////////////////////////////////////////////////////////
//CWebServerDlgdialog
#include"HTTPServer.h"
#defineTIMER_ID_11
#defineTIMER_TO_1500
classCWebServerDlg:
publicCDialog
{
public:
UINTnTimerID;
BOOLm_bRun;
//Construction
public:
voidRestoreSettings();
voidSaveSettings();
CWebServerDlg(CWnd*pParent=NULL);//standardconstructor
//DialogData
//{{AFX_DATA(CWebServerDlg)
enum{IDD=IDD_WEBSERVER_DIALOG};
CStaticm_nVisitors;
CStaticm_nBytesRecv;
CStaticm_nBytesSent;
CStaticm_nRequests;
CStaticm_nActiveConn;
CStringm_szHomeDir;
CStringm_szDefIndex;
intm_Port;
intm_PTO;
CStringm_szStatus;
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CWebServerDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
HICONm_hIcon;
CHTTPServerWebServer;
//Generatedmessagemapfunctions
//{{AFX_MSG(CWebServerDlg)
virtualBOOLOnInitDialog();
afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);
afx_msgvoidOnPaint();
afx_msgHCURSOROnQueryDragIcon();
afx_msgvoidOnStart();
afx_msgvoidOnStop();
afx_msgvoidOnClose();
virtualvoidOnOK();
afx_msgvoidOnTimer(UINTnIDEvent);
afx_msgvoidOnReset();
afx_msgvoidOnHomedirbrowse();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.
#endif//!
defined(AFX_WEBSERVERDLG_H__8F4AD293_7AED_4ED5_A263_0ED2ED7032C8__INCLUDED_)
//WebServerDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"WebServer.h"
#include"WebServerDlg.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CWebServerDlgdialog
CWebServerDlg:
:
CWebServerDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CWebServerDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CWebServerDlg)
//初始化参数
m_szHomeDir=_T("");
m_szDefIndex=_T("");
m_Port=81;
m_PTO=10;
m_szStatus=_T("");
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCWebServerDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWebServerDlg)
DDX_Control(pDX,IDC_VISITORS,m_nVisitors);
DDX_Control(pDX,IDC_BYTESRECV,m_nBytesRecv);
DDX_Control(pDX,IDC_BYTESENT,m_nBytesSent);
DDX_Control(pDX,IDC_REQUESTS,m_nRequests);
DDX_Control(pDX,IDC_ACTIVECONN,m_nActiveConn);
DDX_Text(pDX,IDC_HOMEDIR,m_szHomeDir);
DDX_Text(pDX,IDC_DEFINDEXFILE,m_szDefIndex);
DDX_Text(pDX,IDC_PORT,m_Port);
DDV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 服务器