- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 变量后,添加所有变量的初始化代码
您可能关注的文档
最近下载
- 地下室注浆工程合同.docx
- 2022年12月贵州省普通高中学业水平合格性考试语文模拟试题(含答案).pdf
- 新形势下高素质农民培训模式浅析-教育培训论文-教育论文.docx
- Unit 6 Is he your grandpa 第1课时 Lead-in & Cartoon time 译林版(三起)(2024)英语三年级上册.pptx
- 《童年》读书分享PPT.ppt
- 2023年高职单考单招机械类专业理论模拟考试.doc
- 银行公众号运营规划方案(含预估效果).pdf VIP
- 信息通信建设工程预算定额(5册合集).docx VIP
- 篮球裁判员暨社会体育指导员试题含答案.doc
- 煤矿安全规程题库.doc
文档评论(0)