资源简介
一个用MFC开发的FTP客户端,特点是支持多线程下载和断点续传,没有用CSocket,用了比较底层的Socket函数,适合学习Socket的朋友,请多多支持

代码片段和文件信息
// client.cpp : Defines the class behaviors for the application.
//
#include “stdafx.h“
#include “client.h“
#include “afxsock.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)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN CWinApp::OnFileOpen)
// Standard print setup command
ON_COMMAND(ID_FILE_PRINT_SETUP CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CClientApp construction
CClientApp::CClientApp()
{
// TODO: add construction code here
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CClientApp object
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;
}
//下载进程
DWORD WINAPI DownLoadThread(LPVOID lpparam)
{
CDownLoad * pthis=(CDownLoad*)lpparam;
InterlockedIncrement(&pthis->m_index);
pthis->DownThread(pthis->m_index-1);
return 1;
}
CString g_IP;
int fileflags[10];
FILEINFO files[10];
/////////////////////////////////////////////////////////////////////////////
// CClientApp initialization
BOOL CClientApp::InitInstance()
{
if (!AfxSocketInit()) //重要
{
AfxMessageBox(IDP_SOC
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 49280 2010-12-23 14:07 client\client.aps
文件 4015 2011-02-28 21:39 client\client.clw
文件 6295 2010-12-23 13:31 client\client.cpp
文件 5140 2010-12-23 14:47 client\client.dsp
文件 520 2010-12-22 23:00 client\client.dsw
文件 1591 2010-12-23 13:04 client\client.h
文件 82944 2011-02-28 21:39 client\client.ncb
文件 50688 2011-02-28 21:39 client\client.opt
文件 246 2010-12-29 22:11 client\client.plg
文件 16019 2010-12-23 14:07 client\client.rc
文件 2468 2010-12-22 23:00 client\clientDoc.cpp
文件 1547 2010-12-22 23:00 client\clientDoc.h
文件 4798 2010-12-24 13:18 client\clientView.cpp
文件 2002 2010-12-22 23:41 client\clientView.h
文件 1111 2010-12-22 23:00 client\CntrItem.cpp
文件 1554 2010-12-22 23:00 client\CntrItem.h
文件 5907456 2010-12-23 01:40 client\Debug\client.bsc
文件 2408500 2010-12-24 14:29 client\Debug\client.exe
文件 2817864 2010-12-24 14:29 client\Debug\client.ilk
文件 30976 2010-12-23 13:31 client\Debug\client.obj
文件 6130884 2010-12-23 01:45 client\Debug\client.pch
文件 4531200 2010-12-24 14:29 client\Debug\client.pdb
文件 22664 2010-12-23 14:07 client\Debug\client.res
文件 0 2010-12-23 01:40 client\Debug\client.sbr
文件 19869 2010-12-23 13:04 client\Debug\clientDoc.obj
文件 0 2010-12-23 00:26 client\Debug\clientDoc.sbr
文件 32915 2010-12-24 13:18 client\Debug\clientView.obj
文件 0 2010-12-23 01:03 client\Debug\clientView.sbr
文件 15743 2010-12-23 13:04 client\Debug\CntrItem.obj
文件 0 2010-12-23 00:26 client\Debug\CntrItem.sbr
............此处省略35个文件信息
相关资源
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- socket客户端.c
- TCP/IP客户端和服务器端源代码,好用
- FTP客户端源码(c++)
- opc ua客户端
- TCP服务端和TCP客户端通讯
- ftp工具代码
- XX游戏客户端源码
- socket通讯c++源码(客户端+服务端)
- c++开发http服务端+客户端
- 多线程串口通讯
- Win32多线程程序设计--详细书签版
- 用C++写的FTP客户端
- CAsyncSocket异步实现服务器与客户端
- QT实现视音频实时传输qml+C++
- 网络编程MFC 实验四 FTP客户端功能实现
- Linux多线程服务端编程:使用muduo C+
- 计算机网络课设-邮件客户端实现(含
- 局域网下,手机可以和电脑通过sock
- C语言实现telnet客户端
- TCP实现服务器和多客户端通信
- MultiThread(VS2013 MFC多线程-含源码-含个
- MFC 实现FTP客户端的上传断点续传
- MFC网络编程服务端和客户端的通讯
- 用C++实现的聊天程序
- C++编写的多线程C/S模式仿QQ软件
- 基于linux C/C++和Qt的聊天程序
- 使用JRTPLib基于RTP协议服务器与客户端
评论
共有 条评论