• 大小: 5.92MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-10
  • 语言: 其他
  • 标签: C++  WinSocket  

资源简介

实现一个FTP协议的客户端和服务器,完成基本的文件传输功能。 功能: (1) 多客户端访问。 (2) 在获取文件之前能够先得到文件列表。 (3)实现FTP文件的上传与下载. (4) GUI(界面实现)。

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “Client.h“
#include “MainFrm.h“
#include “ClientDoc.h“
#include “ClientView.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

//********************************************************************
// CClientApp

BEGIN_MESSAGE_MAP(CClientApp CWinApp)
//{{AFX_MSG_MAP(CClientApp)
ON_COMMAND(ID_APP_ABOUT OnAppAbout)
//}}AFX_MSG_MAP

ON_COMMAND(ID_FILE_NEW CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN CWinApp::OnFileOpen)

ON_COMMAND(ID_FILE_PRINT_SETUP CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()

//********************************************************************
// CClientApp construction

CClientApp::CClientApp(){ }


//********************************************************************
CClientApp theApp;
//完成进线

DWORD WINAPI notify(LPVOID lpparam)
{
  CMainframe*  pthis=(CMainframe*)lpparam;
  return pthis->Finish();
}

DWORD WINAPI timethread(LPVOID lpparam)
{
//记录进程
  CDownLoad * pthis=(CDownLoad *)lpparam;
  return pthis->Finish();
}

int Rev(SOCKET sockchar *dataint len)
{
//取数据
int iLenGettedret;
iLenGetted=len;
while(iLenGetted>0)
{
ret=recv(sockdataiLenGetted0);
if(ret<0)
{
CString str;
            str=“接收错误\n“;
            AfxGetMainWnd()->SendMessageToDescendants(WM_MESSAGE (WPARAM)str.GetBuffer(0)(LPARAM)RGB(25500)1);
         str.ReleaseBuffer();
        return -2;
   }
if(ret==0)
return len-iLenGetted;
    data+=ret;
    iLenGetted-=ret;
}
return len;
}

int Send(SOCKET sockchar *dataint len)
{
 //发送信息
int iLenSendedret;
iLenSended=len;
while(iLenSended>0)
{
ret=send(sockdataiLenSended0);
if(ret<0)
{
CString str;
            str=“发送错误\n“;
            AfxGetMainWnd()->SendMessageToDescendants(WM_MESSAGE (WPARAM)str.GetBuffer(0)(LPARAM)RGB(25500)1);
        str.ReleaseBuffer();
        return -2;
}
if(ret==0)
return len-iLenSended;
data+=ret;

    iLenSended-=ret;
}
return len;
}

CString g_IP;

//下载进程
DWORD WINAPI DownLoadThread(LPVOID lpparam)
{
CDownLoad * pthis=(CDownLoad*)lpparam;
InterlockedIncrement(&pthis->m_index);
pthis->DownThread(pthis->m_index-1);
return 1;
}
 
int fileflags[10];
FILEINFO files[10];
 
BOOL CClientApp::InitInstance()
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}

//初始化OLE库
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}

AfxEnableControlContainer();

#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif

SetRegistryKey(_T(“Local AppWizard-Generated Applications“));
LoadStdProfileSettings();  


CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINframe
RUNTIME_CLASS(CClientDoc)
RUNTIME_CLASS(CMainframe)     
RUNTIME_CLASS(CClientView));
pDocTemplate->S

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-01-01 10:27  bin\
     文件       49152  2010-12-14 14:35  bin\client1.exe
     文件      151645  2010-12-14 16:05  bin\FileServer.exe
     目录           0  2011-01-01 10:27  src\
     目录           0  2011-01-01 10:27  src\Client\
     文件       35476  2010-12-14 14:34  src\Client\Client.aps
     文件        4528  2010-12-14 14:04  src\Client\Client.cpp
     文件         888  2010-12-14 14:35  src\Client\Client.h
     文件       15427  2010-12-14 14:17  src\Client\Client.rc
     文件        3782  2002-12-19 13:10  src\Client\client1.clw
     文件        1380  2002-08-18 19:02  src\Client\client1.dep
     文件        5443  2010-12-14 14:35  src\Client\client1.dsp
     文件         537  2002-07-17 10:42  src\Client\client1.dsw
     文件       10680  2002-08-18 19:02  src\Client\client1.mak
     文件      115712  2010-12-14 14:35  src\Client\client1.ncb
     文件      141824  2010-12-14 14:35  src\Client\client1.opt
     文件        1839  2010-12-14 14:35  src\Client\client1.plg
     文件         879  2010-12-14 10:21  src\Client\client1.sln
     文件       22528  2010-12-14 13:17  src\Client\client1.suo
     文件       10481  2010-12-08 10:26  src\Client\client1.vcproj
     文件        1427  2010-12-14 13:17  src\Client\client1.vcproj.PC-201001301056.Administrator.user
     文件        1694  2010-12-14 13:51  src\Client\ClientDoc.cpp
     文件         752  2010-12-14 13:56  src\Client\ClientDoc.h
     文件        4337  2010-12-14 13:52  src\Client\ClientView.cpp
     文件        1287  2010-12-14 14:35  src\Client\ClientView.h
     文件         927  2010-12-14 13:53  src\Client\CntrItem.cpp
     文件         848  2010-12-14 13:57  src\Client\CntrItem.h
     文件        8124  2010-12-14 13:53  src\Client\DownLoad.cpp
     文件        1174  2010-12-14 13:58  src\Client\DownLoad.h
     文件        3608  2010-12-14 13:46  src\Client\FileList.cpp
     文件        1024  2010-12-14 13:58  src\Client\FileList.h
............此处省略111个文件信息

评论

共有 条评论