{
printf("Fail To Create Socket/n");/> return FALSE;
}
return HandleFTPRequest();
}// End Of StartHijack()
// No Need To Comment
BOOL InitSocket()
{
WSADATA data;
WORD ver;
ver = MAKEWORD(2,2);
return (WSAStartup(ver, &data) == 0);
}// End Of InitSocket()
//--------------------------------------------------------------------------------------------
// Purpose: To Send Buffer Through Socket
// Return Type: BOOLEAN
// Parameters:
// In: const SOCKET ClientSocket --> The Client Connected Socket
//--------------------------------------------------------------------------------------------
BOOL SendSocket(const SOCKET ClientSocket,const char *Message)
{
return (send(ClientSocket,Message,strlen(Message),0) != SOCKET_ERROR);
}// End Of SendSocket()
//--------------------------------------------------------------------------------------------
// Purpose: To Send FTP Banner To The Client
// Return Type: BOOLEAN
// Parameters:
// In: const SOCKET ClientSocket --> The Client Connected Socket
//--------------------------------------------------------------------------------------------
BOOL SendFTPBanner(const SOCKET ClientSocket)
{
char *SendWelcomeInfo = "220 Serv-U FTP Server v4.1 for WinSock ready.../r/n";
return SendSocket(ClientSocket,SendWelcomeInfo);
}// End Of SendFTPBanner()
//--------------------------------------------------------------------------------------------
// Purpose: To Receive Buffer From Socket
// Return Type: BOOLEAN
// Parameters:
// In: const SOCKET ClientSocket --> The Client Connected Socket
// In: const int nSize --> The SocketBuffer's Size
// Out: char *SocketBuffer --> Buffer To Receive Data
//--------------------------------------------------------------------------------------------
BOOL ReceiveSocketBuffer(const SOCKET ClientSocket,char *SocketBuffer,const int nSize)
{
return (recv(ClientSocket,SocketBuffer,nSize,0) > 0);
}// End Of ReceiveSocketBuffer()
//--------------------------------------------------------------------------------------------
// Purpose: To Check Whether A String Only Contains Digits
// Return Type: BOOLEAN
// Parameters:
// In: const char *String --> The String To Be Checked
//--------------------------------------------------------------------------------------------
BOOL IsDigits(const char *String)
{
UINT i = 0;
UINT StringLength = strlen(String);
for (i = 0;i < StringLength;i )
{
if (String[i] < 48
String[i] > 57)
{
return FALSE;
}
}
return TRUE;
}// End Of IsDigits()
//--------------------------------------------------------------------------------------------
// Purpose: To Save Information Into A File
// Return Type: BOOLEAN
// Parameters:
// In: const char *FileName --> File To Store Information
// In: const char *Info --> Information To Be Stored Into File
//--------------------------------------------------------------------------------------------
BOOL SaveInfo(const char *FileName,const char *Info)
{
HANDLE hFile = NULL;
DWORD dwBytes = 0 ;
BOOL Flag = FALSE;
// Open A File For Writing
hFile = CreateFile(FileName,
GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL
);
if (hFile == INVALID_HANDLE_VALUE) // Fail To Open That File,Something Must Be Wrong
{
return FALSE;
}
SetFilePointer(hFile,0,NULL,FILE_END); // Set The File Pointer To The File End
Flag = WriteFile(hFile,Info,strlen(Info),&dwBytes,NULL); // Write Information Into That File
CloseHandle(hFile); // Close File Handle
return Flag; // Return The WriteFile Status
}// End Of SaveInfo()
//--------------------------------------------------------------------------------------------
// Purpose: To Remove An Ending Enter From A String
// Return Type: BOOLEAN
// Parameters:
// In: char *String --> String To Be Modified
//--------------------------------------------------------------------------------------------
BOOL DeleteEnter(char *String)
{
UINT Length = strlen(String);
if (String[Length - 2] == '/r'
String[Length - 2] == '/n')
{
String[Length - 2] = '';
}
else
{
if (String[Length - 1] == '/r'
String[Length - 1] == '/n')
{
String[Length - 1] = '';
}
}
return TRUE;
}// End Of DeleteEnter()
//--------------------------------------------------------------------------------------------
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




