基于Win-CE系统的红外通信工具设计与实现论文.docx

上传人:教**** 文档编号:86772134 上传时间:2023-04-15 格式:DOCX 页数:39 大小:604.36KB
返回 下载 相关 举报
基于Win-CE系统的红外通信工具设计与实现论文.docx_第1页
第1页 / 共39页
基于Win-CE系统的红外通信工具设计与实现论文.docx_第2页
第2页 / 共39页
点击查看更多>>
资源描述

《基于Win-CE系统的红外通信工具设计与实现论文.docx》由会员分享,可在线阅读,更多相关《基于Win-CE系统的红外通信工具设计与实现论文.docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、西安工业大学北方信息工程学院本科毕业设计(论文)题目:基于Win CE系统的红外通信工具设计与实现系 别: 电子信息 专 业: 通信工程 班 级: B090310 学 生: 栾志来 学 号: B09031013 指导教师: 李 晨 2013年06月键入文字毕业设计(论文)任务书系别 电子信息系 专业 通信工程 班级 B090310 姓名 栾志来 学号 B09031013 1.毕业设计(论文)题目: 基于Win CE系统的红外通信工具的设计与实现 2.题目背景和意义:WinCE具有强大的通信能力,提供了丰富的通信支持,以Windows CE为系统的掌上电脑具备了红外通信硬件。由于红外通信方便高效

2、,因此它在PC、PC外设、通信及信息家电等设备上的应用也日益广泛。 3.设计(论文)的主要内容(理工科含技术指标): (1)熟悉 红外通信控制协议及Win CE平台(2)掌握红外通信规则和标准(3)编程,在Windows CE平台上获得特定的SDK,通过C+进行编程,在Windows CE 模拟器上编辑和调试代码,在实际目标平台上,编译、运行程序。(4)开发工具:a语言:C+,b嵌入式:SDK。(5)按照软件工程的思想和方法进行分析、调试和实现 (6)论文撰写符合管理规范手册要求。 4.设计的基本要求及进度安排(含起始时间、设计地点):(1)选题、收集资料、确定开发工具、理解题目、开题报告3周

3、,2012年11月25日前(2)需求分析(需求说明书)、开发计划(项目计划书)3周,2013年1月15日前(3)总体流程图。 2周,2013年1月31日前(4)编写程序4周,2013年2月28日(5)系统集成2周,2013年3月15日前(6)系统测试1周,2013年3月22日前(7)导师验收1周,2013年3月30日前(8)完成论文10周,2013年5月8日前。 5.毕业设计(论文)的工作量要求 撰写12000字论文 实验(时数)*或实习(天数): 图纸(幅面和张数)*: 其他要求: 查阅资料不少于15份 指导教师签名: 年 月 日 学生签名: 年 月 日 系主任审批: 年 月 日说明:1本表

4、一式二份,一份由学生装订入册,一份教师自留。2 带*项可根据学科特点选填。基于Win CE系统的红外通信工具设计与实现摘 要以Win CE为操作系统的掌上电脑Pocket PC具备了红外通信的能力。当前国内市场上运行WinCE的掌上电脑均支持红外通信。由于红外通信方便高效,因此它在PC机、PC外设、通信及信息家电等设备上的应用日益广泛。 该软件是在Window CE的平台上,利用Pocket PC嵌入式,通过采用C+进行编程,在Windows CE平台上获得特定的SDK,利用红外通信协议实现短距离的数据通信。本文主要是利用EVC在Win CE平台上通过红外通信协议实现两个终端的信息和数据传递工

5、具的开发,在以Win CE为操作系统的掌上电脑上实现客户端和服务器的开发、调试、和应用。其中包括工具软件的介绍、开发流程、快发模块的介绍和程序的编写。关键词:Win CE;红外通信;Irsocket;PC;Pocket PC;EVCIIThe Design and Implementation of Infrared CommunicationTools Based on Win CE SystemAbstractHandheld computers (PPC) and Pocket PC with the Win CE operating system equip with infrared

6、 communication capability. Currently running on the domestic market are supported with Win CE handheld infrared communication. The infrared communication is convenient and efficient, so it is widely used in the PC, PC peripherals, communications, information appliances and other devices.The software

7、 is based on the Window CE platforms, by using C + + Programming, Obtaining the Windows CE platform-specific SDK, using short-range infrared communication protocol for data communication.This paper mainly uses the EVC in Win CE platform about infrared communication protocol to achieve the two termin

8、als of the information and transfer tools , in order to make Win CE operating system for handheld computers to achieve client and server development, testing, and applications. Including the introduction of software tools, development process are module describes procedures for the preparation .Key

9、Words: Window CE; The infrared communications; Irsocket; PC;Pocket PC;EVC目 录1 绪论11.1开发背景11.2软件开发的意义11.3设计者的主要工作11.4 论文的组织结构22 相关技术介绍32.1 WINDOWS CE平台的介绍32.2红外通信的基本协议42.3 IRSOCK及使用方法52.4 POCKET PC介绍52.5 SDK的介绍63 程序制作流程73.1仿真环境的建立73.2软件开发主要应用工具73.3 EVC特性83.3.1 EVC集成开发环境83.3.2 EVC的使用83.3.3 EVC中的MFC/ATL

10、的特性93.4WINSOCKET使用简介103.4.1 服务器端操作SOCKET(套接字)103.4.2 客户端SOCKET的操作133.5程序流程框图133.6“红外通信工具”程序的用户界面和项目生成153.7 ACTIVESYNC173.8 操作过程193.9设计的软件实现结果204 软件调试224.1软件测试的目标224.2测试计划及执行情况224.3集成测试224.4测试评价225 总结23参考文献24致谢25毕业设计(论文)知识产权声明26毕业设计(论文)独创性声明27附录 软件代码28331 绪论1 绪论1.1开发背景红外通讯技术利用红外线来传递数据,是无线通讯技术的一种。红外线通

11、信是目前使用较广泛的一种通信手段。由于红外线通信具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其他小型继电器装置上也纷纷采用红外线通信技术不仅完全可靠而且能有效地隔离电器干扰。而单片机是目前设计应用中用得比较广泛的器件,它可以通过软件编程来达到不同的效果,实现各种各样不同的功能,具有灵活性强、可靠性高,可扩展性好的有点。红外通信是利用红外没接来实现2点间的近距离保密通信和信息转发的技术。它一般由红外发射和接收系统2个部分组成。发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成了红外通信系统。

12、目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直接线数据传输。为了使各种设备能够通过一个红外接口进行通信,红外数据协议组织(Infrared Data Association,简称IRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准。以Win CE为操作系统的掌上电脑(PPC)及Pocket PC具备了红外通信的能力。当前国内市场上运行WinCE的掌上电脑均支持红外(IR)通信。由于红外通信方便高效,因此它在PC机、PC外设、通信及信息家电等设备上的应用日益广泛。1.2软件开发的

13、意义它具有保密性强、信息容量大、结构简单、方向性好、免受电磁干扰、成本低廉、跨平台适应性好、传输速率高等优点,所以普遍用于点对点通信数据连接系统中。红外通信的最大特点在于它替代了传统的线缆连接,拜托了不同平台设备连接时对于特制接口的要求,使得跨平台设备间的数据交换得以简化。1.3设计者的主要工作开发者通过对红外协议和相关编程语言的学习及工具的应用进行流程图的制作和语言的编写,通过相应的软件开发工具开发相应的通行软件并能够在相西安工业大学北方信息工程学院毕业设计(论文)应的拥有Win CE平台的PC机上进行调试及修改,并能够对开发出的软件进行维护。能够在拥有红外通信硬件的掌上电脑实现红外通信软件

14、客户端和服务器的安装及调试。能够制作出相应的管理手册及相应的应用规范及要求。1.4 论文的组织结构论文的组织结构如下:第一章:主要介绍本次设计的软件开发背景、意义及设计者的主要工作。第二章:主要介绍本次设计的软件所需要的相关技术和平台,Win CE系统的发展史、红外通信、Irsocket技术、SDK、Pocket PC 的介绍。第三章:主要介绍软件的制作流程,仿真环境的建立、开发软件工具的使用、EVC的使用、软件开发界面、软件的开发流程图、WinSocket的技术应用及软件通信的介绍。第四章:软件的调试工作使制作的软件在终端上的应用。2 相关技术介绍2 相关技术介绍2.1 WINDOWS CE

15、平台的介绍开发平台主要应用嵌入式系统wince,Windows CE操作系统是Windows家族中的成员,专门设计给掌上电脑(HPCs)以及嵌入式设备所使用的电脑环境。这样的操作系统可使完整的可移动技术与现有的Windows桌面技术整合工作。Windows CE 被设计成针对小型设备(它是典型的拥有有限内存的无磁盘系统)的通用操作系统,Windows CE 可以通过设计一层位于内核和硬件之间代码来用设定硬件平台,这即是众所周知的硬件抽象层(HAL)(在以前解释时,这被称为 OEMC(原始设备制造)适应层,即OAL;内核压缩层,即KAL。以免与微软的 Windows NT操作系统HAL 混淆)。

16、以Win CE6.0为例做以下简单介绍:2006年11月,微软公司其最新的嵌入式平台Windows Embedded CE 6.0正式上市。作为业内领先的软件工具,Windows Embedded CE 6.0将为多种设备构建实时操作系统,例如:互联网协议(IP)机顶盒、全球定位系统(GPS)、无线投影仪,以及各种工业自动化、消费电子以及医疗设备等。在Windows Embedded诞生十周年之际,微软将首次在“共享源计划(Microsoft Shared Source programme)”中100%毫无保留地开放Windows Embedded CE 6.0内核,(GUI图形用户界面不开放

17、)比Windows Embedded CE的先前版本的开放比例整体高出56%。“共享源计划”为设备制造商提供了全面的源代码访问,以进行修改和重新发布(根据许可协议条款),而且不需要与微软或其他方共享他们最终的设计成果。尽管Windows操作系统是一个通用型计算机平台,为实现统一的体验而设计,设备制造商可以使用Windows Embedded CE 6.0这个工具包为不同的非桌面设备构建定制化的操作系统映像。通过获得Windows Embedded CE源代码的某些部分,比如:文件系统、设备驱动程序和其他核心组件,嵌入式开发者可以选择他们所需的源代码,然后编译并构建自己的代码和独特的操作系统,迅

18、速将他们的设备推向市场。Win CE它是将条码扫描装置与数据终端一体化,带有电池可离线操作的终端电脑设备。具备实时采集、自动存储、即时显示、即时反馈、自动处理、自动传输等功能。为现场数据的真实性、有效性、实时性、可用性提供了保证。其具有一体性、机动性、体积小、重量轻、高性能,并适于手持等特点。它主要应用于工业数据采集中。西安工业大学北方信息工程学院毕业设计(论文)Win CE主要由两大部分组成,一是Win CE硬件设备,另一个是Win CE中运行的采集端软件,介绍如下:a. 硬件设备在生产现场,由于空间的限制,一般情况下不方便放置常规的工控主机,同时也基于成本的考虑,所以采用工业级的嵌入式主机

19、是一个比较好的解决方案,如广州太友科技的数据采集仪,此数据采集仪上配备有两个串口,仪器或设备可直接通过串口线与之相连,同时用户可在数据采集仪中设置产品相关的信息。b. 软件部分采集软件安装在数据采集仪中,用户通过采集软件进行数据的自动采集,并进行相关的处理, 对于生产线的实时数据,由于一般只是输出数据,没有输出相应的参数值,规格值等,所以此时可在软件中设置相应的产品信息参数,然后由用户选择相应的产品信息,班次信息,批次信息等。2.2红外通信的基本协议红外数据通讯标准包括基本协议和特定应用领域的协议两类。类似于TCP-IP协议,它是一个层式结构,其结构形成一个栈。其中基本的协议:a. 物理层协议

20、(IrPHY),制定了红外通信硬件设计上的目标和要求,包括红外的光特性、数据编码、各种波特率下帧的包括格式等。为达到兼容,硬件平台以及硬件接口设计必须符合红外协议制定的规范。 b. 连接建立协议(IrLAP)层制定了底层连接建立的过程规范,描述了建立一个基本可靠连接的过程和要求。c.连接管理协议(IrLMP)层制定了在单位个IrLAP连接的基础上复用多个服务和应用的规范。在IrLMP协议上层的协议都属于特定应用领域的规范和协议。d. 流传输协议(TingTP)在传输数据时进行流控制。制定把数据进行拆分、重组、重传等的机制。e. 对象交换协议(IrOBEX)制定了文件和其他数据对象传输时的数据格

21、式。f. 模拟串口层协议(IrCOMM)允许已存在的使用串口通信的应用象使用串口那样使用红外进行通信。g. 局域网访问协议(IrLAN)允许通过红外局域网络唤醒笔记本电脑等移动设备,实际远程摇控等功能。2.3 IRSOCK及使用方法多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,Irsock为红外套接字。使用方法:a. 使用Irsock的服务器应用程序的流程(1) 使用socket分配一个流套接字,对地址格式参数用AF-IRDA对类型参数用SOC

22、K-STREAM。(2) 使用bind将服务名与套接字绑定,向address参数传送SOCKADDR-IRDA结构。(3) 使用listen侦听传入的连接。(4) 使用accept接收传入的客户。(5) 使用send和recv与客户通讯。(6) 使用closesocket关闭套接字。b. 使用Irscock的客户应用程序的流程 (1) 使用socket分配一个流套接字,对地址格式参数用AF-IRDA对类型参数用SOCK-STREAM。(2) 搜索服务器,使用getssoeketoptbind检索其ID。(3) 使用connect与服务器连接,对name参数使用SOCK- ADDR-IRDA。(

23、4) 使用send和recv与服务器通讯。(5) 使用closesocket关闭套接字。2.4 POCKET PC介绍Pocket PC是基于微软的Windows Mobile操作系统的一种掌上电脑。Pocket PC是一种手持设备,可帮助您存储并检索电子邮件、联系人和约会信息,播放多媒体文件,玩赏电子游戏,借助MSN Messenger交换文本消息,浏览Web内容等,您将能够与台式机实现信息交换和同步。PPC,即Pocket PC,是基于微软Pocket PC系统架构,最为常见的微软开发的PDA系统,而Pocket PC Phone则是微软开发的用于微软智能手机上的操作系统,两者最大的区别是

24、后者插入SIM卡后可当作手机使用,并且当按下电源键之后可以把PDA的功能关闭,但是电话功能还是可以继续使用。在软件兼容性上,也有很多可以通用。目前市面上大多数基于微软操作系统的智能手机都采用了这一操作系统。Pocket PC包含的组成部分: a. 触摸屏:一般大小240*320像素大小。b. 写字笔和输入面板:Pocket PC没有标准的物理键盘,文本输入靠输入面板和写字笔完成。写字笔是相当于PC上的鼠标,输入面板是显示输入的小窗口。Pocket PC允许用户用不同的方法输入数据:拼音输入,手写识别和自己安装的其他输入方法。 c. 控制按钮:Pocket PC有一些控制按钮。 d. 开/关按钮

25、:打开或关闭Pocket PC。按钮开/关按钮,配合“Reset”按钮可以还原工厂默认设置。 执行按钮:按下执行按钮相当于按下Enter键。滚动执行按钮相当于按向下、向上键,用于菜单项的选择。 录音按钮:激活录音应用程序,并开始录音。 热键按钮:启动关联的应用程序。 e. 音频输入与音频输出。 f. 电源:因为Pocket PC 是便携式设备,所以电池寿命非常重要。为了在更换电池时避免数据丢失,Pocket PC也有一个备用电池。 g. Pocket PC支持多种CPU:MIPS系列,SH3系列,ARM系列等。 h. Pocket PC上配置内存的大小各不相同,可使用CF卡扩充内存。Pocke

26、t PC上的内存在存储内存和程序内存之间进行分配,系统可以自动调整存储内存和程序内存各自分配的大小,用户也可以通过“设置-系统-内存”改变存储内存和程序内存各自分配的大小。 i. Pocket PC内置串口,一般还有USB口和红外线通信端口。Pocket PC上的红外通信端口遵从IrDA标准,Pocket PC用红外通信端口可以和PC,其他Pocket PC或其他Win CE设备通信。 j. Pocket PC内置CF卡插槽,通过它可以使用各种CF卡,如内存卡、Modem卡、网卡等等。2.5 SDK的介绍SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开

27、发工具的集合,一般而言SDK即开发Windows平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。3 程序制作流程3 程序制作流程3.1仿真环境的建立在桌面计算机上开发应用程序,需要安装Pocket PC的仿真器。安装Microsoft Windows Platform SDK for Pocket PC和Microsoft Embedded Visual Tools后则

28、可在桌面计算机上编写应用程序,通过以上两个应用程序的安装,使得在没有Pocket PC实体的个人计算机上开发基于Win CE的应用程序。aEVC开发环境简介 Microsoft与1996年发布Windows CE操作系统以来,随着移动设备硬件的发展,基于移动设备的操作系统也得到了迅猛发展, Microsoft公司在2005年已经推出其最新的操作系统Windows Mobile 5.0,以及配套的集成开发环境Visual S 2005。纵观各种Win CE应用程序的开发工具,Embedded Visual C+(EVC)是 Microsoft公司推出的一种集成度很高的可视开发工具,应用于开发本机

29、代码类的应用程序。EVC编译生成的应用程序移植性和可靠性都很好,不仅可在Win CE环境下正常工作,也可在最新的Windows Mobile环境下正常工作。bPocket PC硬件组成 基于Windows CE的硬件设备多种多样,限于篇幅的试验条件,但基于Windows CE的其他设备上的程序开发与此类似。以Windows CE3.0为操作系统的掌上电脑称为Pocket PC,以Windows CE2.x为操作系统的掌上电脑称为PPC,以Windows CE2.x为操作系统的带有硬盘的手持电脑称为HPC。3.2软件开发主要应用工具该软件是在Win CE平台上开发的软件与在PC上开发软件相似但工

30、具不同开发工具如下:(1) Embedded visual c+(简称EVC)(2) Platform SDK for pocket PC(内含pocket PC 仿真器) (3) Platform SDK for Handheld PC(内含Handheld PC仿真器)(4) Platform SDK for Palm-Size PC(内含Palm-Size PC 仿真器)其中PocketPC是以WindowCE3.x为操作系统的掌上电脑,Palm-Size PC(简记为PPC)是以Window CE 2.x为操作系统的掌上电脑,Handheld PC(简记为HPC)是带有硬件键盘的掌上电

31、脑。本文中的软件开发主要应用Pocket PC和西安工业大学北方信息工程学院毕业设计(论文)以Win CE为操作系统的掌上电脑。3.3 EVC特性EVC与VC在语法、界面、和开发流程上十分相似,在VC中开发应用程序时大多使用MFC/XTL一样,也包括在EVC中,因此,我们在EVC中使用MFC/ATL如同VC中一样,EVC中也可以应用MFC/ATL构建Win CE应用程序或控件,如基于对话框的应用、基于文档、视图框架构的应用以及ActiveX控件。3.3.1 EVC集成开发环境EVC集成开发环境的界面,除了其中的一组特定工具外,它与VC的集成开发环境相类似如图3.1所示。图3.1 EVC集成开发

32、环境界面EVC集成开发环境包含的组件有文本编辑器、资源编辑器、编译器、平台管理器、调试器、代码浏览器、类向导、应用程序向导、远程工具、在线帮助。特性工具栏中可选择设备类型(Pocket pc、ppc、hpc)、仿真器类型(Pocket pc仿真器、ppc仿真器、hpc仿真器)和CPU类型1。3.3.2 EVC的使用启动EVC,选择菜单下的File-New-projects,弹出对话框。在其中选择WCE MFC AppWizard(exe),填写项目名称,选择所在目录和CPU类型,便可生成一个EVC中的MFC应用框架。进入编辑该步骤如图3.2和3.3所示。图3.2 启动EVC弹出project界

33、面图3.3 在project下输入工程名界面3.3.3 EVC中的MFC/ATL的特性EVC中的MFC基本上可以看作为VC中MFC的一个子集,但EVC中还包括一些VC中MFC不具备的类,以及完全支持、部分支持的、不支持的类成员函数、全局函数结构,还有Windows CE中独有的MFC类、全局函数、结构和消息。对于完全支持的MFC类或结构,EVC的MFC支持的方式与VC的MFC基本相同,但个别会有参数上的差异,由于篇幅原因不作出详细介绍。 3.4 WINSOCKET使用简介为了方便网络编程,Microsoft联合了其他几家公司共同制定了一套Windows下的网络编程接口,即Windows Soc

34、kets规范为了方便网络编程,90年代初,由Microsoft联合了其他几家公司共同制定了一套Windows下的网络编程接口,即Windows Sockets规范,它不是一种网络协议,而是一套开放的、支持多种协议的Windows下的网络编程接口。现在的Winsock已经基本上实现了与协议无关,你可以使用Winsock来调用多种协议的功能,但较常使用的是TCP/IP协议。Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现2。微软为VC定义了Winsock类如CAsyncSock

35、et类和派生于CAsyncSocket 的CSocket类,它们简单易用,读者朋友当然可以使用这些类来实现自己的网络程序,但是为了更好的了解Winsock API编程技术,我们这里探讨怎样使用底层的API函数实现简单的 Winsock 网络应用程式设计,分别说明如何在Server端和Client端操作Socket,实现基于TCP/IP的数据传送,最后给出相关的源代码。在VC中进行WINSOCK的API编程开发的时候,需要在项目中使用下面三个文件,否则会出现编译错误3。(1) WINSOCK.H: 这是WINSOCK API的头文件,需要包含在项目中。(2) WSOCK32.LIB: WINSO

36、CK API连接库文件。在使用中,一定要把它作为项目的非缺省的连接库包含到项目文件中去。 (3) WINSOCK.DLL: WINSOCK的动态连接库,位于Windows的安装目录下。3.4.1 服务器端操作SOCKET(套接字)a. 在初始化阶段调用WSAStartup()此函数在应用程序中初始化Windows Sockets DLL ,只有此函数调用成功后,应用程序才可以再调用其他Windows Sockets DLL中的API函数。在程式中调用该函数的形式如下:WSAStartup(WORD)(18|1),(LPWSADATA)&WSAData),其中(18|1)表示我们用的是WinSo

37、cket1.1版本,WSAata用来存储系统传回的关于WinSocket的资料。b. 建立Socket初始化WinSock的动态连接库后,需要在服务器端建立一个监听的Socket,为此可以调用Socket()函数用来建立这个监听的Socket,并定义此Socket所使用的通信协议。此函数调用成功返回Socket对象,失败则返回INVALID_SOCKET(调用WSAGetLastError()可得知原因,所有WinSocket 的函数都可以使用这个函数来获取失败的原因)。SOCKET PASCAL FAR socket( int af, int type, int protocol )参数:

38、af:目前只提供 PF_INET(AF_INET);type:Socket 的类型 (SOCK_STREAM、SOCK_DGRAM);protocol:通讯协定(如果使用者不指定则设为0)。如果要建立的是遵从TCP/IP协议的socket,第二个参数type应为SOCK_STREAM,如为UDP(数据报)的socket,应为SOCK_DGRAM。c. 绑定端口接下来要为服务器端定义的这个监听的Socket指定一个地址及端口(Port),这样客户端才知道待会要连接哪一个地址的哪个端口,为此我们要调用bind()函数,该函数调用成功返回0,否则返回SOCKET_ERROR。int PASCAL F

39、AR bind( SOCKET s, const struct sockaddr FAR *name,int namelen );参数: s:Socket对象名;name:Socket的地址值,这个地址必须是执行这个程式所在机器的IP地址;namelen:name的长度。如果使用者不在意地址或端口的值,那么可以设定地址为INADDR_ANY,及Port为0,Windows Sockets 会自动将其设定适当之地址及Port (1024 到 5000之间的值)。此后可以调用getsockname()函数来获知其被设定的值4。d. 监听当服务器端的Socket对象绑定完成之后,服务器端必须建立一个

40、监听的队列来接收客户端的连接请求。listen()函数使服务器端的Socket 进入监听状态,并设定可以建立的最大连接数(目前最大值限制为 5, 最小值为1)。该函数调用成功返回0,否则返回SOCKET_ERROR。int PASCAL FAR listen( SOCKET s, int backlog );参数: s:需要建立监听的Socket;backlog:最大连接个数。服务器端的Socket调用完listen()后,如果此时客户端调用connect()函数提出连接申请的话,Server 端必须再调用accept() 函数,这样服务器端和客户端才算正式完成通信程序的连接动作。为了知道什么

41、时候客户端提出连接要求,从而服务器端的Socket在恰当的时候调用accept()函数完成连接的建立,我们就要使用WSAAsyncSelect()函数,让系统主动来通知我们有客户端提出连接请求了。该函数调用成功返回0,否则返回SOCKET_ERROR。int PASCAL FAR WSAAsyncSelect( SOCKET s, HWND hWnd,unsigned int wMsg, long lEvent );参数: s:Socket 对象;hWnd :接收消息的窗口句柄;wMsg:传给窗口的消息;lEvent:被注册的网络事件,也即是应用程序向窗口发送消息的网路事件,该值为下列值FD_

42、READ、FD_WRITE、FD_OOB、FD_ACCEPT、FD_CONNECT、FD_CLOSE的组合,各个值的具体含意为:FD_READ:希望在套接字S收到数据时收到消息;FD_WRITE:希望在套接字S上可以发送数据时收到消息;FD_ACCEPT:希望在套接字S上收到连接请求时收到消息;FD_CONNECT:希望在套接字S上连接成功时收到消息;FD_CLOSE:希望在套接字S上连接关闭时收到消息;FD_OOB:希望在套接字S上收到带外数据时收到消息。 具体应用时,wMsg应是在应用程序中定义的消息名称,而消息结构中的lParam则为以上各种网络事件名称。所以,可以在窗口处理自定义消息函

43、数中使用以下结构来响应Socket的不同事件:switch(lParam) case FD_READ: break;case FD_WRITE break; e. 服务器端接受客户端的连接请求当Client提出连接请求时,Server 端hwnd视窗会收到Winsock Stack送来我们自定义的一个消息,这时,我们可以分析IParam,然后调用相关的函数来处理此事件。为了使服务器端接受客户端的连接请求,就要使用accept() 函数,该函数新建一个Socket与客户端的Socket相通,原先监听之Socket继续进入监听状态,等待他人的连接要求。该函数调用成功返回一个新产生的Socket对象

44、,否则返回INVALID_SOCKET。SOCKET PASCAL FAR accept( SCOKET s, struct sockaddr FAR *addr,int FAR *addrlen );参数:s:Socket的识别码;addr:存放来连接的客户端的地址;addrlen:addr的长度。f. 结束 socket 连接结束服务器和客户端的通信连接是很简单的,这一过程可以由服务器或客户机的任一端启动,只要调用closesocket()就可以了,而要关闭Server端监听状态的socket,同样也是利用此函数。另外,与程序启动时调用WSAStartup()憨数相对应,程式结束前,需要调

45、用 WSACleanup() 来通知Winsock Stack释放Socket所占用的资源。这两个函数都是调用成功返回0,否则返回SOCKET_ERROR5。3.4.2 客户端SOCKET的操作a. 建立客户端的Socket客户端应用程序首先也是调用WSAStartup() 函数来与Winsock的动态连接库建立关系,然后同样调用socket() 来建立一个TCP或UDP socket(相同协定的 sockets才能相通,TCP 对TCP,UDP 对UDP)。与服务器端的socket不同的是,客户端的socket 可以调用 bind() 函数,由自己来指定IP地址及port号码;但是也可以不调用 bind(),而由 Winsock来自动设定IP地址及port号码。b. 提出连接申请客户端的Socket使用connect()函数来提出与服务器端的Socket建立连接的申请,函数调用成功返回0,否则返回SOCKET_ERROR。int PASCAL FAR connect( SOCKET s, const struct sockaddr FAR *name, int

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁