WEB开发网
开发学院软件开发VC 用VC++5.0编写Ftp客户程序 阅读

用VC++5.0编写Ftp客户程序

 2008-11-14 19:34:49 来源:WEB开发网   
核心提示: BOOL CMainFrame::MakeRemoteDir(){if(m_ctrlconn==NULL){(“请连接到服务器!”,“提示”,用VC++5.0编写Ftp客户程序(3),MB_iconwarwing);retrurn FALSE

BOOL CMainFrame::MakeRemoteDir()

if(m_ctrlconn==NULL)

(“请连接到服务器!”,“提示”,MB_iconwarwing);
retrurn FALSE;

if(!MakeDataListen())

MessageBox(“数据链路建立失败!”,“提示”,MB_ICONWARNING);
return FALSE;

……
return TRUE;

//处理来自远端服务器的响应
BOOL CMainFrame::Processftp()

………

//建立数据连接“监听”函数
BOOL CMainFrame::MakeDataListen()

……
m_dataconn=new Listensocket();
/* 建立一个SOCKET,并与本地主机地址捆绑。作为一个例子,直接插入了本机的IP地址“90.0.0.8”,而在实际应用中应首先通过相应的函数调用取得本地主机地址。

注意:如果不采用VC++的CSocket类而用其它的方法,需在建立SOCKET之后,调用bind()函数来进行与本地主机地址的捆绑。*/

if(!m_dataconn->Create(0,SOCK_STREAM,“90.0.0.8”))

delete m_dataconn;
m_dataconn=NULL;MessageBox(“Socket()建立失败!”,“提示”,MB_ICONWARNING);
return FALSE;

//申请网络事件通知
if(!m_dataconn->AsyncSelect(FD_ACCEPT))

delete m_dataconn;
m_dataconn=NULL;
MessageBox(“AsyncSelect()错误!”,“提示”,MB_ICONWARNING);
return FALSE;

……
if(!m_dataconn->Listen(5))

MessageBox(“listen()错误!”,“提示”,MB_ICONWARNING);
return FALSE;

……

//接受数据连接请求的函数
BOOL CMainFrame::AcceptDataConn()

int num,nRet;
SOCKADDR_IN RemoteDataAddr;
num=sizeof(SOCKADDR_IN);
if(m_recvconn==NULL)

m_recvconn=new Datasocket();

if(!m_dataconn->Accept(*m_recvconn,(LPSOCKADDR)&RemoteDataAddr,(int FAR*)&num))

MessageBox(“accept()错误!”,“提示”,MB_ICONWARWING);
return FALSE;

……
m_dataconn->Close();
//申请网络事件通知
if(!m_recvconn->AsyncSelect(FD_READ|FD_WRITE|FD_CLOSE)

MessageBox(“Asyncselect()错误!”,“提示”,MB_ICONWARNING);
return FALSE;

return TRUE;

//数据接受函数,接受来自远端服务器的数据
int CMainFrame::RecvData()

……
int nRet=m_recvconn->Receive(…);
if (nRet>0)



else



……

2.ctrlsocket.cpp
……
void ctrlsocket::OnReceive(int nErrorCode)

//处理网络事件FD_READ
CSocket::OnReceive(nErrorCode);
((CmainFrame *)(AfxGetApp()->m_pMainWnd))->Processftp();

3.Listensocket.cpp
……
void Listensocket::OnAccept(int nErrorCode)

//处理网络事件FD_ACCEPT
CSocket::OnAccept(nErrorCode);
((CmainFrame*)AfxGetApp()->m_pMainWnd))->AcceptDataConn();

4.Datasocket.cpp
……
Datasocket::OnReceive(int nErrorCode)

//处理网络事件FD_READ
CAsyncSocket::OnReceive(nErrorCode);
((CMainFrame*)(AfxGetApp()->m_pMainWnd))->RecvData();

void Datasocket::OnSend(int nErrorCode)

//处理网络事件FD_WRITE
CAsyncSocket::OnSend(nErrorCode);
((CMainFrame*)(AfxGetApp()->m_pMainWnd))->SendData();

上一页  1 2 3 

Tags:VC 编写 Ftp

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接