- 1
- 0
- 约4.74千字
- 约 50页
- 2017-11-12 发布于广东
- 举报
第10章 Internet编程 10.1 用MFC WinSock类进行网络通信设计 套接字(Socket)是互连网的终点。 。底层的套接字函数是WinInet API的一部分,CSocket的基类如下图所示。 10.1.1 创建套接字 用两步来创建一个套接字。首先,必须创建一个CSocket对象。然后,利用Create()函数创建一个基本的套接字句柄。下面是创建连接到端口4500的套接字的例子: 10.1.2 连接套接字 一旦创建了一个套接字,就可以同其他终点或套接字建立连接,必须使用Connect()函数来做到这一点。Connect()函数有两个参数,一个是指向SOCKADDR_IN结构的指针,一个是结构的字节尺寸。SOCKADDR_ADDR结构有下面的格式: 本结构中的IP地址是IN_ADDR类型。IN_ADDR结构在Windows套接字的头文件winsock.h中定义如下: 建立一个连接的最后一步是使用connect()函数。下面的代码试图连接到服务器。这个代码使用在前面已定义好的SOCKADDR_IN结构: 10.1.3 监听一个连接 使用Create()函数之后,需要调用Listen()函数监听在端口上新来的连接,只有当Listen()函数响应了一个调用或有一个套接字错误发生时才会有返回。下面的代码就是监听一个连接: 10.1.4 读和写数据 Receive()函数从远端终点读取数据,Send()函数发送数据到远端终点。 例10.1 Receive()函数的应用。 Receive()函数的第三个可选参数指明调用建立的方式。它的值可以是下表中的标志的并集。 10.2 用MFC WinInet类开发应用程序 10.2.1 MFC WinInet类的优点及其功能 MFC对WinInet的封装是通过提供三个由CStdioFile派生类实现的。 MFC WinInet类有如下优点: (1)缓冲器输入输出; (2)数据的类型安全处理; (3)许多函数的参数都是缺省值; (4)对普通的Internet错误进行异常处理; (5)自动清除打开的句柄和连接。 使用WinInet提供的API函数,可以: (1)通过http协议下载html页,http协议是专门用在服务器和客户浏览器之间传输html页。 (2)发送ftp请求上传或下载文件以及获取服务器的目录信息。通过匿名登陆下载文件便是ftp的典型应用。 10.2.2 Internet客户端程序实现步骤 WinInet中的CInternetSession是管理会话的类。CInternetSession的构造函数中接收六个参数: 在建立会话后就可以利用CInternetSession∷OpenURL打开一个URL,并读取数据,函数原型为: 本文给出的例子就是利用WinInet通过HTTP协议读取网上文件。完成这一功能的代码非常简单,当然代码中少了各种错误检测。 10.3 实 例 10.3.1 设计一个浏览器 单一URL地址连接程序 (1)新建一个对话框工程EX_Brower01 (2)新添加一个Microsoft Web浏览器控件: l选择菜单栏(Project/Add to Project/Component and Control)命令 l打开(Components and Control Gallery)对话框中,选择(Registered ActiveX Control),单击Insert按钮 l在接下来的窗口中选择要添加的控件(Microsoft Web浏览器),单击Insert按钮 l? 随后单击OK按钮 l最后单击Close按钮,这时,Microsoft Web浏览器控件就出现在控件栏中 (3)设计界面 将Microsoft Web浏览器控件拖入对话框中,ID为默认的IDC_EXPLORER1 同时在Web浏览器控件的右侧放置一个命令按钮, ID为“ IDC_EXPLORER_BUTTON ”,标题为‘’浏览“。效果见下图 (4)添加变量 为Web浏览器控件添加变量“m_Explorer”,类型为CWebBrowser2。 (5)添加函数 为按钮添加单击事件处理函数OnExplorerButton(),代码如下 (6)测试程序 如你的计算机已接入Internet,当点击” 浏览”按扭时,能浏览到的主页。运行效果如下图 带地址栏的浏览器 (1)打开上面的工程 (2)添加一个静态文本,标题为地址栏;添加一个组合框,ID为IDC_COMBO1组合框的样式为Dropdown
您可能关注的文档
- JSP应用开发教程课件作者温超第8章节Javabean编程.ppt
- 促销管理技术实训课件作者李纲程鹏13章.ppt
- 供配电系统课件作者徐滤非第二章节例2-4章.ppt
- JSP应用开发教程课件作者温超第11章节企业邮箱模拟系统.ppt
- JSP应用开发教程课件作者温超第12章节基于struts的学生管理系统.ppt
- LabVIEW程序设计基础与提高课件作者张兰勇第1章节LabVIEW概述.ppt
- LabVIEW程序设计基础与提高课件作者张兰勇第4章节波形显示与文件操作.ppt
- 光纤通信第2版普通高等教育“十一五”国家级规划教材课件乔桂红光纤通信课件01章.ppt
- LabVIEW程序设计基础与提高课件作者张兰勇第5章节数据采集.ppt
- LabVIEW程序设计基础与提高课件作者张兰勇第6章节MATLAB程序设计基础.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 05G359-3悬挂运输设备轨道标准图集.pdf VIP
- 新学期教师培训会,校长发言:明边界守初心,知尺度有温度,让教育履职既合规又暖心.doc VIP
- 湖南省长沙市第一中学2024-2025学年高二上学期语文1月期末考试试卷(含答案).pdf VIP
- 2025年秋季学期学校全面工作计划.doc VIP
- T∕CHAS 10-2-22-2023 中国医院质量安全管理 第2-22部分:患者服务 疼痛治疗.pdf
- T_CNFMA B036-2024 户外林业机械 以锂离子电池为动力源的步进式松土机.pdf VIP
- T_CCTAS 237-2025 城市轨道交通市域快线车辆运营技术规范.pdf VIP
- 广告策划与创意(第2版):网络广告创意PPT教学课件.pptx
- 人体解剖学试题及答案.docx VIP
- 最后倒计时最后倒数(The Final Countdown) 高清钢琴谱五线谱.doc VIP
原创力文档

文档评论(0)