螈薆袃节《网络程序设计》腿肄课程设计报告书蚂莂薀螆蚅蒁螇蒈蒄题目:局域网文件传输与消息通信薁专业:网络工程膈学号:20091423袆学生姓名:史政法膃指导教师:魏宁薁完成日期:2012年06月06日蕿蚈羂蚁题目及要求羀Window程序设计的基本要求:;;;。螇本实例程序的技术要点是:螄如何从CasyncSocket类派生出自己的WinSock类。袁理解WinSock类与应用程序框架的关系。蒇重点学习流式套接字对象的使用。芅处理网络事件的方法。薂系统概要设计羁1、CSocket类的介绍袈 在MFC中,为了提供面向对象的编程方式而封装了两个WinSock类:一个是CAsyncSocket类,另一个是CSocket类。他们的不同点在于前者使用的是非阻塞模式操作,而后者可以支持阻塞模式的I/O操作。CSocket类是从CAsyncSocket类中继承来的,他为程序员提供了更高级的抽象性。由于CSocket类和CArchive类一起使用,并且管理了通讯的大多数操作,从而使程序员从网络编程的底层细节中解脱了出来,不必使用CAsyncSocket的一些成员函数和一些WindowsSocketAPI函数来处理通信问题。共同使用CSocket和CArchive类对象进行编程是最简单的WinSock编程模式。文档来自于网络搜索羇薅下面是使用CSocket类进行网络通信的过程肁构造CSocket类对象艿用CSocket类对象的Create函数创建WindowsSocket,Create()函数会调用Bind()函数将此函数绑定的指定的地址和端口。文档来自于网络搜索蒅Socket创建完毕后,Listen()函数在服务器端进行监听客户的连接请求。莄在这一步,ept()函数对客户端发来的请求进行接受和处理,而客户端则调用Connect()函数向服务器发出连接请求。文档来自于网络搜索膀在客户端和服务器端的数据传输完成后,应该分别在两边销毁创建的CSocket对象。蚀2、编程思路和工程实现膇 用MFCAppWizard新建一个给予对话框的工程,在第三步中添加WindowsSocketS的支持,建立的程序界面如右图:文档来自于网络搜索肃膀袇薅控件类型袂芀控件ID芈芇Caption袅莀静态文本statictext虿螅IDC_STATIC蚄本机的ip:蒀静态文本statictext肀蒆IDC_STATIC_SERVPORT蒃薀要连接的ip:add荿袆螂IDC_YOURIP衿螀薈编辑框editbox袅罿IDC_EDIT_MSG羇羆命令按钮button薄聿莈IDC_BUTTONCONNECT螈 启动莃蒃命令按钮button蝿膅莆IDC_BUTTON_DISCONNECT蒃 关闭腿袇命令按钮button膄薃IDC_BUTTON_SENDMSG薀发送消息莅羃命令按钮button蚃蚇肇IDC_BUTTON_SEND_FILE蚂传送文件螃肈命令按钮button蒅螅袂IDC_BUTTON_STOP葿停止传送芇蒄命令按钮button羂袀蚅IDCANCEL芃 退出系统肂羇进程process莇肂IDC_PROGRESS_SEND_FILE肂 莈文档来自于网络搜索袄图1—-程序主对话框中的控件属性肅膂螈芆薃羁衿蚄节肁芀莆莅肁蒇图2—-对话框中的控件对象定义相应的成员变量膈肄膁编程思路:首先在对话框中输入要连接的IP地址,然后单击“启动”按钮,要连接的主机也做相同的操作,两边都准备完事后,两台计算机就可以消息和文件的传输了。文档来自于网络搜索袈单击“启动”按钮时,处理函数启动了监听线程来启动服务,主要的语句如下:pThreadListen=::AfxBeginThread(_ListenTcpThread,this);文档来自于网络搜索薅 点击“发送消息”按钮时,处理函数启动了消息发送线程来进行消息的传送,语句如下:袃 pThreadSendMsg=::AfxBeginThread(_SendMsgThread,this);文档来自于网络搜索芁 当点击“传送文件”按钮时,处理函数启动了文件传输线程来进行文件传输,语句如下:艿 pThreadSendMsg=::AfxBeginThread(_SendFileThread,this);文档来自于网络搜索芇下面主要介绍一下要用到的三个线程和一个文件接收处理函数。首先要产生三个线程对象:蚁 CWinThread_ListenTcpThread;莁 CWinThread_SendFileThread;虿 CWinThread_SendMsgThread;螅蚄系统详细设计蒁监听线程函数螆UIN
局域网文件传输与消息发送 来自淘豆网m.daumloan.com转载请标明出处.