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

📄 ftpserver.h

📁 It can also accept a number of ftp connection (multithreaded), and with most of the commercial ftp s
💻 H
字号:
// FTPServer.h: interface for the CFTPServer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FTPSERVER_H__144E8B64_2004_4709_B55A_242FE5F07BD2__INCLUDED_)
#define AFX_FTPSERVER_H__144E8B64_2004_4709_B55A_242FE5F07BD2__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ConnectThread.h"
#include "ListenSocket.h"
#include "FTPEventSink.h"
#include "UserManager.h"
#include "SecurityManager.h"

class CFTPServer : public CWnd
{
	friend CConnectSocket;

public:
	void SetGoodbyeMessage(LPCTSTR lpszText);
	void SetWelcomeMessage(LPCTSTR lpszText);
	void SetTimeout(int nValue);
	void SetPort(int nValue);
	void SetMaxUsers(int nValue);
	void SetStatisticsInterval(int nValue);
	BOOL IsActive();
	void Stop();
	BOOL Start();
	CFTPServer();
	virtual ~CFTPServer();

	CUserManager m_UserManager;
	CSecurityManager m_SecurityManager;

	CCriticalSection m_CriticalSection;

    // list of thread pointers
    CTypedPtrList<CObList, CConnectThread*> m_ThreadList;

	int GetPort() { return m_nPort;	};
	int GetMaxUsers() {	return m_nMaxUsers;	}
	int GetTimeout() { return m_nTimeout; }
	int GetConnectionCount() { return m_nConnectionCount; }
	CString GetWelcomeMessage() { return m_strWelcomeMessage; };
	CString GetGoodbyeMessage() { return m_strGoodbyeMessage; };
	void AddTraceLine(int nType, LPCTSTR pstrFormat, ...);

private:
	// socket member that listens for new connections
	CListenSocket m_ListenSocket;
	CFTPEventSink *m_pEventSink;

	int		m_nPort;
	int		m_nMaxUsers;
	CString	m_strWelcomeMessage;
	CString	m_strGoodbyeMessage;
	int		m_nTimeout;
	BOOL	m_bRunning;

	// statistics
	DWORD m_dwTotalReceivedBytes;
	DWORD m_dwTotalSentBytes;
	int	m_nConnectionCount;
	int m_nTotalConnections;
	int m_nFilesDownloaded;
	int m_nFilesUploaded;
	int m_nFailedDownloads;
	int m_nFailedUploads;

	// Operations
public:
	BOOL IsIPAddressAllowed(LPCTSTR lpszIPAddress);
	void SetSecurityMode(BOOL bBlockSpecific = TRUE);
	BOOL CheckMaxUsers();
	void Initialize(CFTPEventSink *pEventSink);

// Overrides
    // ClassWizard generated virtual function overrides
    //{{AFX_VIRTUAL(CFTPServer)
	//}}AFX_VIRTUAL

// Generated message map functions
protected:
	int m_nSecurityMode;
	int m_nStatisticsInterval;
	//{{AFX_MSG(CFTPServer)
	afx_msg void OnTimer(UINT nIDEvent);
	//}}AFX_MSG
	LRESULT OnThreadClose(WPARAM wParam, LPARAM lParam);
	LRESULT OnThreadStart(WPARAM wParam, LPARAM);
	LRESULT OnThreadMessage(WPARAM wParam, LPARAM lParam);
    DECLARE_MESSAGE_MAP()
};

#endif // !defined(AFX_FTPSERVER_H__144E8B64_2004_4709_B55A_242FE5F07BD2__INCLUDED_)

⌨️ 快捷键说明

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