网络编程实验报告-实验3-基于windows的MFC-windows编程.doc

网络编程实验报告-实验3-基于windows的MFC-windows编程.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 PAGE 1页 共 NUMPAGES 8页 实验报告 学院(系)名称:计算机与通信工程学院 姓名 学号 专业 信息安全 班级 实验名称 实验3 基于windows的MFC windows编程 课程名称 网络编程 课程代码 0662146 实验时间 2016- 12 - 5 实验地点 7-219 批改意见 成绩 教师签字: 1. 实验目的 VC++对原来的WindowsSockets库函数进行了一系列封装,继而产生CAsynSocket、CSocket、CSocketFile等类,它们封装着有关Socket的各种功能。利用VC6.0中MFC AppWizard和MFC ClassWizard功能将很容易实现网络聊天功能 2. 实验环境 搭载 Windows 7 操作系统的PC机 VC 6.0 编译器 3. 实验要求 编写基于windows的MFC windows的可进行socket通信的程序 4. 实验过程记录(源程序、测试用例、测试结果及心得体会等) 1.建立基于对话框的MFC 工程MySock 注意:①基于对话框;②支持window socket。 添加控件,并设置控件属性 控件类型 ID Caption Group Box IDC_STATIC socket类型 Radio Button IDC_RCLIENT 客户端 RadioButton IDC_RSERVER 服务器端 Static text IDC_SNAME 服务器名 Edit box IDC_ESERVERNAME Static text IDC_SPORT 端口号 Edit box IDC_EPORT Button IDC_BCONNECT 连接 Button IDC_BCLOSE 关闭 Static box IDC_SMSG 消息 Edit box IDC_EMSG Static box IDC_SSEND 发送 List box IDC_LSEND Static box IDC_SRECV 接收 List box IDC_LRECV Button IDC_BSEND 发送 3.为控件添加对应的成员变量和映射消息响应函数 双击“发送”按钮,添加OnBsend 函数;双击“关闭”按钮,添加OnBclose 函数;复用“连 接”按钮,当选择客户端按钮时显示“连接”;当选择服务端时显示“监听”。为两个单选按 钮添加一个消息函数, 根据当前选择的按钮修改命令的正文。具体做法是,双击 IDC_RCLIENT 控件,添加函数OnRType 函数,同时双击IDC_RSERVER 控件,添加该函 数。 编辑该函数,添加如下代码: //in MySockDlg.cpp void CMySockDlg::OnRType() { // TODO: Add your control notification handler code here UpdateData(TRUE); //使控件与变量同步 if(m_iType==0) //m_iType=0 即client 端 m_ctlConnect.SetWindowText(连接);//m_ctlConnect 为控件“连接”按钮的映射变 量 else m_ctlConnect.SetWindowText(监听); } 运行程序,结果如下图所示: 选中“客户端”显示“连接”;选中“服务器端”显示“监听”: 4.添加CAsyncSocket 类的继承类MySocket 为了使应用程序能够捕捉和相应socket 事件,可以从AsyncSocket 创建自己的派生类。该类 需要有自己版本的事件函数,也需要一种把此事件传到对话框的方法。为把每个事件传给对 话框类、添加一个指向父对话框的指针作为socket 类的成员变量。对每个socket 事件使用 此指针调用事件函数。具体做法, 如图所示: 创建socket 类后,为该类添加一个私有成员变量m_pWnd 作为指向父对话框的指针;然后 必须在该类中,添加一个成员函数SetParent 以设置该指针,该函数在MySocket.cpp 文件中的 实现代码为: void CMySocket::SetParent(CDialog* pWnd) { m_pWnd=pWnd;//设置成员指针变量 } 最后,MySocket 类,还必须添加事件函数,用于调用对话框类中名字相同的成员函数。为 添加OnAccept 事件函数,可以ClassWizard 窗口中,单击右键|add virtual function… 注意:同时添加#include MySocket.h 5.初始化CMySocket 类的成员函数 添加CMySocket 变量后,添加所有变量的初始化代码

文档评论(0)

cjp823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档