资源简介
实现一个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个文件信息
相关资源
- p2p 的简单实现 上传文件
- 数据结构实验课(全部题目+完整代码
- 哈夫曼树实现图片压缩与解压
- 车辆保险管理系统
- 算法导论第三版英文原版
- CTP接口及开发文档.zip
- VxWorks及Tornado集成开发环境的使用
- 炫彩界面库帮助文档chm-v2.5.0
- vc实用教程第三版+郑阿奇
- 嵌入式华清远见培训 ARM代码内部资料
- VLD For VS2019
- 网上鲜花销售系统完整代码
- Qt中嵌入Excel
- VS2010写的连连看
- Clion+Qt 运行的
- 超市进销存管理系统需要数据库
- 一维信号的小波变换算法.rar
- Botan库 已经在windows下编译好的32位B
- 基于VS2008的可视化时钟
- 简易抽奖软件含源码
- opengl实现太阳系动态模型,地球,月
- [epub] 像程序员一样思考修订版
- glfw-3.2.1源码(需要自行编译)
- 广工信工图像处理作业
- opengl 实现的机器人行走
- 变网格步长声波方程有限差分数值模
- GMM模型实现
- Read_Ionex.rar
- QT实现图书馆管理系统
- 武汉理工大学数据结构与算法实验,
评论
共有 条评论