《网络程序设计》课程设计报告书题目:局域网文件传输与消息通信专业:网络工程学号: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的支持,建立的程序界面如右图:文档来自于网络搜索控件类型控件IDCaption静态文本statictextIDC_STATIC本机的ip:静态文本statictextIDC_STATIC_SERVPORT要连接的ip:addIDC_YOURIP编辑框editboxIDC_EDIT_MSG命令按钮buttonIDC_BUTTONCONNECT 启动命令按钮buttonIDC_BUTTON_DISCONNECT 关闭命令按钮buttonIDC_BUTTON_SENDMSG发送消息命令按钮buttonIDC_BUTTON_SEND_FILE传送文件命令按钮buttonIDC_BUTTON_STOP停止传送命令按钮buttonIDCANCEL 退出系统进程processIDC_PROGRESS_SEND_FILE 文档来自于网络搜索图1—-程序主对话框中的控件属性图2—-对话框中的控件对象定义相应的成员变量编程思路:首先在对话框中输入要连接的IP地址,然后单击“启动”按钮,要连接的主机也做相同的操作,两边都准备完事后,两台计算机就可以消息和文件的传输了。文档来自于网络搜索单击“启动”按钮时,处理函数启动了监听线程来启动服务,主要的语句如下:pThreadListen=::AfxBeginThread(_ListenTcpThread,this);文档来自于网络搜索 点击“发送消息”按钮时,处理函数启动了消息发送线程来进行消息的传送,语句如下: pThreadSendMsg=::AfxBeginThread(_SendMsgThread,this);文档来自于网络搜索 当点击“传送文件”按钮时,处理函数启动了文件传输线程来进行文件传输,语句如下: pThreadSendMsg=::AfxBeginThread(_SendFileThread,this);文档来自于网络搜索下面主要介绍一下要用到的三个线程和一个文件接收处理函数。首先要产生三个线程对象: CWinThread_ListenTcpThread; CWinThread_SendFileThread; CWinThread_SendMsgThread;系统详细设计监听线程函数UINT_ListenTcpThread(LPVOIDlparam){CFiletranDlg*pDlg=(CFiletranDlg*)lparam; if(pDlg->StopServer==true) return-1; CSocketsockSrvr; pDlg->m_Potr=PORT;
局域网文件传输与消息发送 来自淘豆网m.daumloan.com转载请标明出处.