MFC Csocket实现点对点文件传输


一个实现点对点文件传输的例子,服务器端和客户端切换方便。。。。
资源截图
代码片段和文件信息
// ClientSocket.cpp : implementation file
//

#include “stdafx.h“
#include “FileTransfers.h“
#include “ClientSocket.h“

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

/////////////////////////////////////////////////////////////////////////////
// CClientSocket

CClientSocket::CClientSocket(CFileTransfersDlg* pdlgMain)
{
m_pdlgMain = pdlgMain;

m_pFile = NULL;
m_pArchiveIn = NULL;
m_pArchiveOut = NULL;
}

CClientSocket::CClientSocket()
{
m_pdlgMain = NULL;

m_pFile = NULL;
m_pArchiveIn = NULL;
m_pArchiveOut = NULL;
}

CClientSocket::~CClientSocket()
{
}


// Do not edit the following lines which are needed by ClassWizard.
#if 0
BEGIN_MESSAGE_MAP(CClientSocket CSocket)
//{{AFX_MSG_MAP(CClientSocket)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
#endif // 0

/////////////////////////////////////////////////////////////////////////////
// CClientSocket member functions

//串行化的初始化
void CClientSocket::Init()
{
m_pFile = new CSocketFile(this);
m_pArchiveIn = new CArchive(m_pFileCArchive::load);
m_pArchiveOut = new CArchive(m_pFileCArchive::store);
}

void CClientSocket::Abort()
{
if (m_pArchiveOut != NULL)
{
m_pArchiveOut->Abort();
delete m_pArchiveOut;
m_pArchiveOut = NULL;
}
}

BOOL CClientSocket::SendMsg(CMessage *pMsg)
{
if (m_pArchiveOut != NULL)
{
TRY
{
pMsg->Serialize(*m_pArchiveOut);
m_pArchiveOut->Flush();

return TRUE;
}
CATCH(CFileException e)
{
m_pArchiveOut->Abort();
delete m_pArchiveOut;
m_pArchiveOut = NULL;
}
END_CATCH
}

return FALSE;
}

void CClientSocket::ReceiveMsg(CMessage *pMsg)
{
pMsg->Serialize(*m_pArchiveIn);
}

void CClientSocket::OnReceive(int nErrorCode) 
{
m_pdlgMain->ProcessReceive(this);
CSocket::OnReceive(nErrorCode);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1885  2003-08-10 01:34  filetransfersClientSocket.cpp

     文件       1504  2003-08-02 05:06  filetransfersClientSocket.h

     文件      22484  2008-09-12 13:40  filetransfersFileTransfers.aps

     文件       2007  2009-05-11 10:40  filetransfersFileTransfers.clw

     文件       2255  2003-08-05 01:07  filetransfersFileTransfers.cpp

     文件       4680  2003-08-09 00:19  filetransfersFileTransfers.dsp

     文件        549  2003-08-05 01:07  filetransfersFileTransfers.dsw

     文件       1401  2003-08-05 01:07  filetransfersFileTransfers.h

     文件     156672  2009-05-11 10:52  filetransfersFileTransfers.ncb

     文件       1235  2007-07-10 00:32  filetransfersFileTransfers.plg

     文件       7017  2007-07-10 00:25  filetransfersFileTransfers.rc

     文件      22414  2007-07-10 00:32  filetransfersFileTransfersDlg.cpp

     文件       2750  2003-08-10 22:50  filetransfersFileTransfersDlg.h

     文件        964  2003-08-06 00:09  filetransfersListenSocket.cpp

     文件       1299  2003-08-09 03:12  filetransfersListenSocket.h

     文件        740  2003-08-09 18:13  filetransfersMessage.cpp

     文件        281  2003-07-29 19:07  filetransfersMessage.h

     文件       3705  2003-08-05 01:07  filetransfersReadMe.txt

     文件       1288  2003-08-05 01:13  filetransfersResource.h

     文件        215  2003-08-05 01:07  filetransfersStdAfx.cpp

     文件       1102  2003-08-09 03:13  filetransfersStdAfx.h

     文件       1078  2003-08-05 01:07  filetransfers
esFileTransfers.ico

     文件        405  2003-08-05 01:07  filetransfers
esFileTransfers.rc2

     文件      36864  2003-08-10 01:57  filetransfersReleaseFileTransfers.exe

     文件      15533  2007-07-10 00:16  filetransfersDebugClientSocket.obj

     文件     135236  2007-07-10 00:32  filetransfersDebugFileTransfers.exe

     文件     357488  2007-07-10 00:32  filetransfersDebugFileTransfers.ilk

     文件      14829  2007-07-10 00:16  filetransfersDebugFileTransfers.obj

     文件    5570940  2007-07-10 00:16  filetransfersDebugFileTransfers.pch

     文件     451584  2007-07-10 00:32  filetransfersDebugFileTransfers.pdb

............此处省略15个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)