利用MFC的Csocket类实现网络通信.ppt

上传人:za****8 文档编号:14127820 上传时间:2020-07-04 格式:PPT 页数:23 大小:341.51KB
收藏 版权申诉 举报 下载
利用MFC的Csocket类实现网络通信.ppt_第1页
第1页 / 共23页
利用MFC的Csocket类实现网络通信.ppt_第2页
第2页 / 共23页
利用MFC的Csocket类实现网络通信.ppt_第3页
第3页 / 共23页
资源描述:

《利用MFC的Csocket类实现网络通信.ppt》由会员分享,可在线阅读,更多相关《利用MFC的Csocket类实现网络通信.ppt(23页珍藏版)》请在装配图网上搜索。

1、1,VC+6.0中利用MFC的CSocket类实现网络通信,2,简单的用户界面,服务器界面客户端界面,3,程序的运行使用说明,在一台计算机上同时运行客户端和服务器,服务器使用端口号为6000(或其它1024以后的端口号),客户端使用默认的端口号。显然客户端和服务器的ip地址均为127.0.0.1服务器端单击“侦听”按钮客户端单击“连接”按钮(若服务器端已处于“侦听”状态则弹出对话框“连接成功”,否则弹出对话框“连接失败”并等待下一次单击“连接”按钮)客户端输入要发送的信息,单击“发送”按钮服务器端单击“接收”按钮,接收到客户端发来的信息,4,服务器端的创建(1),新建工程LXServer,5,

2、服务器端的创建(2),创建的程序类型为“基本对话”,6,服务器端的创建(3),选择WindowsSockts支持,7,服务器端的创建(4),接下来几步直接点击“下一步”,直到下面对话框单击“完成”,8,服务器端的创建(5),9,添加控件(以客户端界面为例),10,服务器端的创建(6),编辑界面,对界面上的控件点击右键,选择属性选项,可以修改ID(把ID改为有意义的名字)和标题界面上没有控件的地方点击右键,弹出菜单,单击“建立类向导”(或者英文版叫ClassWizard),为每个控件添加变量。注意控件ID、变量类型、变量名(参看下页“建立类向导”),11,服务器端的创建(7)建立类向导,12,服

3、务器端的创建(8)新建Csocket的派生类Cserver,为了处理CSocket得到的消息,新建CSocket的派生类CServer(参看上页“建立类向导”或者实验指导书),13,服务器端的创建(9),为了防止用户未点击“侦听”就点击“接收”,令初始的界面“接收”按钮无效,在BOOLCLXServer:OnInitDialog()的末尾添加/TODO:Addextrainitializationherem_BTNRecv.EnableWindow(FALSE);/使接收按钮无效在LXServerDlg.h里添加#include“Server.h“,即包含CServer类的头文件在CLXSer

4、verDLG类中添加两个Cserver类的对象m_server与m_recv,即在LXServerDlg.h里添加private:CServerm_Server;/用于创建端口CServerm_Recv;/用于绑定对方IP地址和端口号,14,服务器端的创建(10),界面的控件“侦听”按钮上双击,添加如下代码voidCLX2Dlg:OnBtnListen()/TODO:Addyourcontrolnotificationhandlercodeherem_Server.Create(6000);/新建端口6000m_Server.Listen();/侦听m_Server.Accept(m_Recv

5、);/侦听到的ip地址和端口号绑定到m_Recvm_BTNRecv.EnableWindow(TRUE);/接收按钮有效m_BTNListen.EnableWindow(FALSE);/侦听按钮无效,15,服务器端的创建(11),界面的控件“接收”按钮上双击,添加如下代码voidCLX2Dlg:OnBtnRecv()/TODO:Addyourcontrolnotificationhandlercodeherecharbuf255=;m_Recv.Receive(buf,255);/接收消息到bufCStrings_msg;s_msg.Format(“%s”,buf);/buf的值传到字符串s_

6、msgm_EDTValue=m_EDTValue+s_msg;UpdateData(FALSE);/变量值传到界面上,16,客户端创建(1),新建工程LXClient,设计界面如下,17,客户端创建(2),修改控件ID,通过“新建类向导”为控件添加变量,18,为了处理CSocket得到的消息,新建CSocket的派生类CClient(过程同服务器)在CLXClientDLG类中添加CClient对象m_client(客户端套接字),即在CLXClientDLG.h中添加private:CClientm_client;/客户端端口,19,客户端的创建(3)程序关闭时关闭端口,通过“建立类向导”,

7、添加WM_DESTROY消息响应函数,20,客户端创建(4)关闭端口代码,21,客户端创建(5),初始化时添加代码,即在BOOLCLXClientDlg:OnInitDialog()的末尾添加下面代码s_ip=CString(“127.0.0.1”);/默认的目的ip地址UpdateData(FALSE);/变量的值传到界面上c_BTNSend.EnableWindow(FALSE);/发送按钮失效,22,客户端的创建(6)“连接”按钮代码,voidCLXClientDlg:OnBtnConnect()/连接按钮相关代码/TODO:Addyourcontrolnotificationhandl

8、ercodehereUpdateData(TRUE);/界面上的数据传到变量上,更新ip地址m_client.Create();/创建端口,采用默认的端口号if(m_client.Connect(s_ip,6000)/连接目标地址,6000端口MessageBox(Client端连接成功);c_BTNSend.EnableWindow(TRUE);/连接成功,可以发送c_BTNConnect.EnableWindow(FALSE);/禁止再连接elseMessageBox(“Client端连接不成功”);,23,客户端的创建(7)“发送”按钮代码,voidCLXClientDlg:OnBtnSend()/TODO:AddyourcontrolnotificationhandlercodehereUpdateData(TRUE);/界面的值传给变量m_client.Send(s_send,255);,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!