ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:24.57KB ,
资源ID:3340407      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3340407.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机网络应用设计实验报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机网络应用设计实验报告.docx

1、计算机网络应用设计实验报告大学计算机学院课程实验(设计)报告课程名称:计算机网络应用设计专业、班:姓 名:学 号:学期:2010年上学期第二部分软件设计一、实验容完成FTP客户端、POP3客户端两个系统程序,以及一个应用程序。客户端操作系统为Windows XP。FTP程序要求具有图形化界面、上传、下载功能,鼓励实现断点续传功能,POP3程序具有接收、阅读、删除等基本功能。FTP、POP3程序使用socket方式编程,从创建socket、建立TCP连接开始,实现FTP、SMTP、POP3协议的功能,不得调用第三方控件(可使用操作系统自身的API函数)。编程工具可以使用C#或VC+。应用程序要现

2、一个网上书店的基本功能,要求具有前端(用户)和后端(管理)功能,基于Web运行方式。前端具有浏览书目、购物车等功能,后端具有管理书目、基本统计功能。编程工具可以是MS .NET(C#)或者J2EE 二选一,数据库可以是SQL Server、DB2、Oracle、Mysql、PostgreSQL之一。二、实验步骤与实验结果1. FTP源程序说明:本程序使用VC+编写,开发环境为VS2008/*/ 连接FTP 服务器*/void Cmfcftp3Dlg:OnBnClickedButton1() m_pInetSession=new CInternetSession(AfxGetAppName(),

3、1,PRE_CONFIG_INTERNET_ACCESS); UpdateData(TRUE); try /根据给出的参数连接到FTP服务器 m_pFtpConnection=m_pInetSession-GetFtpConnection(m_host,m_username,m_password,m_port); if (m_pFtpConnection != NULL) CString m_i; m_i=连接成功rn; m_ftpinfo +=m_i; UpdateData(FALSE); List(); catch (CInternetException * pEx) CString m_

4、i; m_i=连接no成功rn; m_ftpinfo +=m_i; UpdateData(FALSE); TCHAR szError1024; if ( pEx-GetErrorMessage(szError,1024) m_i=(CString) szError; m_ftpinfo +=m_i; UpdateData(FALSE); else AfxMessageBox(There was an exception); pEx-Delete(); m_pFtpConnection=NULL; /*/ 列出FTP服务器上的所有文件*/void Cmfcftp3Dlg:List() CStri

5、ng m_i; CString m_ii; CStringArray m_Dir; CFtpFileFind finder(m_pFtpConnection); BOOL bWorking=finder.FindFile(_T(*); while (bWorking) bWorking = finder.FindNextFile(); if ( finder.IsDots() ) continue; if (finder.IsDirectory() / 如果是目录。 m_Dir.Add( finder.GetFileName(); else m_i=finder.GetFileName()+r

6、n; for (int j=0;jn;j+) m_ii=t; m_ftpinfo=m_ftpinfo+m_ii; m_ftpinfo +=m_i; UpdateData(FALSE); finder.Close(); for(int i=0;im_Dir.GetSize();i+) n+; m_i=+m_Dir.GetAt(i)+rn; for (int j=1;jSetCurrentDirectory(m_Dir.GetAt(i); List(); BOOL m_suc1=0; while(!m_suc1) m_suc1= m_pFtpConnection-SetCurrentDirecto

7、ry(.); n-; 2. POP3源程序说明:本程序是使用VC+编写,开发环境为VS2008,这里只贴了与实现相关的代码,界面部分的代码不在此描述了。MyPop3App.cpp 文件:BOOL CMyPop3App:InitInstance() INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); / 将它设置为包括所有要在应用程序中使用的 / 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWin

8、App:InitInstance(); AfxEnableControlContainer(); SetRegistryKey(_T(应用程序向导生成的本地应用程序); WORD wVersionRequested; wVersionRequested = MAKEWORD(1, 1); int err = WSAStartup(wVersionRequested, &wsaData); /The Windows Sockets WSAStartup function initiates use of Ws2_32.dll by a process if (err != 0) return F

9、ALSE; if (LOBYTE(wsaData.wVersion) != 1 | HIBYTE(wsaData.wVersion) != 1) return FALSE; CMyPop3Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse = IDOK) / TODO: 在此放置处理何时用 / “确定”来关闭对话框的代码 else if (nResponse = IDCANCEL) / TODO: 在此放置处理何时用 / “取消”来关闭对话框的代码 / 由于对话框已关闭,所以将返回FALSE

10、以便退出应用程序, / 而不是启动应用程序的消息泵。 return FALSE;int CMyPop3App:ExitInstance() / TODO: 在此添加专用代码和/或调用基类 WSACleanup(); return CWinApp:ExitInstance();/*/ 自定义的通过套接字发送数据函数*/int CMyPop3Dlg:Send(SOCKET& sock, TCHAR const * buf, int len, int flag) int bytes(0), count(0); while ( count len - 2 ) return offset; rs = r

11、ecv(m_sock, buf + offset, len - offset, flags); if ( rs 0 ) /* error occur */ return -1; offset += rs; bufoffset = 0; while ( strstr(buf, rn.rn) = (char*)NULL ); return offset;/*/ 从服务器对LIST 命令的返回信息中,获取总数*/int CMyPop3Dlg:getMailSum(TCHAR* responseToLIST) int sum = 0; TCHAR* p = strstr(responseToLIST,

12、 rn); if ( p = NULL ) return sum; p = strstr(p + 2, rn); if ( p = NULL ) return sum; while ( (p = strstr(p + 2, rn) != NULL ) sum+; return sum;/*/ 从服务器返回的容中抽取标题*/bool CMyPop3Dlg:GetSubject(TCHAR* subject, TCHAR const * buf) TCHAR const * p = strstr(buf, Subject: ); if ( p = NULL ) return false; p =

13、p + 9; for (int i = 0; i EnableWindow(TRUE); GetDlgItem(IDC_BUTTON2)-EnableWindow(FALSE); closesocket(m_sock); return 0;/*/ 点击登录按钮*/void CMyPop3Dlg:OnLogin() / TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); if (m_serverAddr.IsEmpty() SetDlgItemText(IDC_STATIC_ERRORINFO, _T(请填写Pop3 服务器地址); return; else if (m

14、_portNo.IsEmpty() SetDlgItemText(IDC_STATIC_ERRORINFO, _T(请填写端口号); return; else if (m_userName.IsEmpty() SetDlgItemText(IDC_STATIC_ERRORINFO, _T(请填写您的用户名); return; else if (m_passwd.IsEmpty() SetDlgItemText(IDC_STATIC_ERRORINFO, _T(请填写您的密码); return; GetDlgItem(IDC_BUTTON1)-EnableWindow(FALSE); GetDl

15、gItem(IDC_BUTTON2)-EnableWindow(TRUE); AfxBeginThread(connToServerThread, this); return;/*/ 点击注销按钮*/void CMyPop3Dlg:OnLogoff() / TODO: 在此添加控件通知处理程序代码 TCHAR sendbuf10, recvbuf128; memset(recvbuf, 0, sizeof(recvbuf); strcpy(sendbuf, QUIT rn); / 发送QUIT 消息,结束本次会话。 send(m_sock, sendbuf, strlen(sendbuf),

16、0); int rt = recv(m_sock, recvbuf, sizeof(recvbuf), 0); / 显示服务器返回的信息。 m_CmdInfo += rnResponse to Quit: ; m_CmdInfo += recvbuf; SetDlgItemText(IDC_EDIT6, m_CmdInfo); if (rt m_sock = socket(AF_INET, SOCK_STREAM, 0); / 创建流式套接字。 / 获取pop3 服务器的IP地址。 struct hostent * p; if (p = gethostbyname(pthis-m_server

17、Addr) =NULL) pthis-loginFail(); return 1; TCHAR serverIP100; sprintf(serverIP, %u.%u.%u.%u, (unsigned char)p-h_addr_list00, (unsigned char)p-h_addr_list01, (unsigned char)p-h_addr_list02, (unsigned char)p-h_addr_list03); / 创建一个SOCKADDR_IN SOCKADDR_IN sockaddr; sockaddr.sin_family = AF_INET; sockaddr

18、.sin_port = htons(atoi(LPCSTR)(LPCTSTR)pthis-m_portNo); sockaddr.sin_addr.S_un.S_addr = inet_addr(serverIP); / 连接到服务器 if (0 != connect(pthis-m_sock, (SOCKADDR*)&sockaddr, sizeof(SOCKADDR) pthis-SetDlgItemText(IDC_STATIC_ERRORINFO, _T(连接服务器失败。输入是否有误?); pthis-loginFail(); return 1; / 检查服务器返回的信息。 TCHAR

19、 buf128; memset(buf, 0, sizeof(buf); int returnval(0); returnval = recv(pthis-m_sock, buf, sizeof(buf), 0); if (returnvalSetDlgItemText(IDC_STATIC_ERRORINFO, _T(连接服务器失败。); pthis-loginFail(); return 1; / 保存服务器传回来的信息。 pthis-m_CmdInfo += rnResponse to Conn: ; pthis-m_CmdInfo += buf; pthis-SendMessage(WM_CONNSERVER_SUCX, 0, 0);/*/ 连接服务器成功的消息响应函数*/LRESULT CMyPop3Dlg:login(WPARAM wParam, LPARAM lParam) / 显示服务器传回来的信息 SetDlgItemText(IDC_EDIT6, m_

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1