1、 本科毕业设计 ( 20 届) 基于 Socket 技术的 Windows Mobile 设 备间的实时消息工具开发 所在学院 专业班级 电子信息工程 学生姓名 学号 指导教师 职称 完成日期 年 月 - 2 - 摘 要 在当今的信息时代,人们之间的信息交流越来越频繁,即时通信( Instant Message , IM )软件应运而生,立即受到广大互联网用户的喜爱。在国内有腾讯的 QQ,国外有 ICQ, AIM, MSN 和 Yahoo Messenger 等即时通信软件。这些主流的即时通信软件拥有绝大部分的用户群,而且随着功能的完善,服务的加强,对用户的影响将越来越大,因此对即时通信软件的
2、监控和通信协议分析变得越来越重要。 Windows Mobile 是目前主流的移动开发平台之一,研究该平台上的基于 Socket 技术的实时消息通信,具有重要的现实的意义和广泛的应用前景。 本课题 将嵌入式系统与 Socket 技术相结合,利用 Windows Mobile 设备上的WiFi 建立设备与设备之间的连接,通过 Visual Studio 2008 软件编写程序,实现基于 Socket 的实时消息交互。文章首先介绍了 Socket 的一些功能以及其编程的基本原理, Windows Mobile 操作平台的一些优缺点。最后进行深入研究,对基于 Socket 技术的 Windows M
3、obile 设备间的实时消息工具进行开发,最终达到扫描当前的无线环境,发现周围的设备,显示他们的名字、 MAC 地址、信号强度( RSSI)、 WiFi 信道以及是否需要密码等信息。 关键词: Socket 技术; Windows Mobile;消息 - 3 - Abstract In todays information age, information exchanges between people become more and more frequent, IM (Instant Message, IM) software came into being. And it is pop
4、ular among majority of Internet users, such as Tencent QQ, ICQ, AIM, MSN, and Yahoo Messenger and other instant messaging software. The instant messaging software has most of the user base. With the development of features and services, the impact on users will be deeper and deeper. So the monitorin
5、g and communication protocols analysis of real-time communication software becomes more and more important. Windows Mobile is currently one of the mainstream mobile platforms. It is of great realistic significance and wide applications prospects to study the real-time message communication based on
6、Socket technology. In this paper, the embedded system and Socket technology will be combined. Connections between Windows Mobile devices are established by Wi-Fi. Implementation of real-time message based on Socket interaction is achieved by Visual Studio 2008 software development. First of all, the
7、 article introduces some of the functions and its Socket programming principle, some of the advantages and disadvantages of Windows Mobile platforms. Finally, by in-depth studies on Windows Mobile Device of Socket technology, real-time messaging tools are developed to scan the wireless environment,
8、find the peripheral equipment, displayed their names, MAC address, RSSI, Wi-Fi channel and password information. Key words: Socket; Windows Mobile; Message - 4 - 目 录 1 引言 . 1 1.1 研究背景 . 1 1.2 研究内容 . 1 1.3 研究现状 . 2 2 基于 SOCKET 技术的网络通信 . 3 2.1 SOCKET 技术的历史 . 3 2.2 SOCKET 技术的原理 . 3 2.3 SOCKET 协议简析 . 4
9、2.4 SOCKET 通信机制 . 5 3 基于 SOCKET 技术的实时消息工具开发 . 8 3.1 开发平台简介 . 8 3.2 开发工具简介 . 8 3.3 开发流程 . 9 3.3.1 TCP/IP 协议接口 . 9 3.3.2 Windows Mobile 平台基于 Socket 的多服务器通信 . 11 3.3.3 Windows Mobile 平台上 Ad-hoc 网络的建立 . 12 3.3.4 应用程序的开发 . 15 3.4 程序测试 . 18 4 结论 . 19 致 谢 . 错误 !未定义书签。 参考文献 . 20 附录 程序源代码 . 21 1 引言 1.1 研究背景
10、两个程序在网络上通过一个双向的通讯连接实现数据的交换,这个链路的一端就称为一个 Socket。客户端和服务端的连接可以用 Socket 来实现。用 Socket编程的目的是为了解决网间进程通信问题。 Socket 接口为进程间通信提供了一种新的手段,它不但能用于同一机器中的进程之间的通信,且支持网络通信功能 1。提出 Socket 以后,由于应用的需求,各种 Socket 接口都在主流操作系统中增加了。如 Winsock 是 Windows NT 下的; PC/TCP socket API 是 DOS 下的等等。对socket 做了 一定的扩充是为了适应各类操作系统的要求。各类操作系统扩充后的
11、socket 套接口之间的交集,我们称之为“ Berkeley socket”。 套接字是网络通信的基石,通信的一端就是一个套接字。在这一段上可以找到与其对应的名字。一个正在被使用的套接字都有它的类型和与其相关的进程。在通信域中存在套接字。通信域其实是一种抽象的概念,是为了处理一般的线程通过套接字通信而引进的。 1.2 研究内容 本论文首先对 socket 技术的基本原理以及 Windows Mobile 设备上 Socket 的使用方法进行详细的阐 述;然后熟悉 Visual Studio 2008 的开发环境,了解 C#程序的写法,通过学习和理解纂写所需要的软件需求文档。最后根据软件需求分
12、析,列出所需要实现的功能,并且利用 Visual Studio 2008 来实现,同时在真实设备中进行调试。 本课题将嵌入式系统与 Socket 技术相结合,利用 Windows Mobile 设备上的WiFi建立设备与设备之间的连接,通过 Visual Studio 2008 软件编写程序,最后实现基于 Socket 的实时消息交互,能够扫描当前的无线环境,发现周围的设备,显示他们 的名字、 MAC 地址、信号强度( RSSI)、 WiFi 信道以及是否需要密码等信息。 1.3 研究现状 美国加州 Berkley 大学提出了 Socket,在传输层 (主要是 TCP 和 UDP)协议上的一种
13、套接字规范 ,为 UNIX 操作系统开发的网络通信接口就是 Socket,通信规范和编程规范都是由它定义的。 Socket 屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了 TCP 协议软件和实现了 Socket 规范的计算机之间的通信成为可能 2。 TCP/ IP 网络最为通用的 API 就是 Socket 接口,也是在 Internet上进行应用开发最通用的 API。 实时系统是一种带有时间约束特性的复杂的计算机控制系统,其根本要求是计算机提供的计算能力必须能够满足各种各样的复杂实时任务的时间要求 3。Windows Mobile 是基于一系列智能设备的操作系统(例如, Pock
14、et PC, Pocket PC Phone 和 Smartphone)。 Windows Mobile 与微软的 Windows 操作系统很相似,拥有与 Windows 操作系统同样强大的功能,同时拥有相似的操作方式。 当前的 Windows Mobile 设备一般都配置了无线局域网模块,具备了实时宽带连接的能力 4。对 Windows Mobile 设备进行基于 Socket 的实时消息工具开发,具有重要的实践意义和广泛的应用前景。 2 基于 Socket 技术的网络通信 2.1 Socket技术的历史 在 80 年代早期,佳利福尼亚大学伯克利分校的一个研究组是由远景研究规划局资助的,在
15、UNIX 操作系统中,他们成功的移植了 TCP/IP 软件。作为项目的一部分,设计者们创建了一个接口,应用进程通过这个接口就可以方便的进行通信。他们决定,只要有可能就使用以有的 系统调用,对那些不能方便的容入已有的函数集的情况,就再增加新的系统调用以支持 TCP/IP 功能。插口接口( Berkeley Socket)就这样出现了, Berkeley UNIX 或 BSD UNIX 就是这个系统。Berkeley UNIX 被许多计算机厂商采用,这样, Socket 接口就被广泛使用,到现在已经成为事实上的标准。 2.2 Socket技术的原理 “孔”或“插座”其实就是 Socket 的直观表
16、示。现在作为 BSD UNIX 的进程通讯机制。日常中的插座,有信号插座,有电源插座,有的可以接受信号( 或能量),有的可以发送信号(或能量)。本文中所提到的 Socket 则非常相似于电话插座。就以我们国家级的电话网为例:通话的双方就相当于相互通信的两个进程;通话双方所在的地区相当于一个网络,区号是它的网络地址;区内的一个单位的交换机相当于一台主机,文中提到的 Socket 就相当于主机分配给每个用户的号码。 每个用户在打电话的时候,则必须要有一部电话机,也就是说必须要申请一个 Socket 号;同时也必须知道对方的号码,这个号码就是对方的 Socket 号。然后拨号呼叫对方,相当于一个连接
17、请求(如果对方不在同一地区 ,但也要拨号给对方,相当于给出网络地址)。如果对方在场并且闲置,那么双方拿起电话听筒,就可以正式通话,相当于一个成功的连接。彼此通话的过程,其实就是发出信号给电话机和从电话机接受信号,也就是 Socket 发送和接收数据的过程。双方通话结束后,则相当于对方挂起电话机,对方的 Socket 关闭,连接结束。 利用网间网通信设施能够实现 Socket 进程通信, Socket 通信对设施的细节不关心,只要设施有通信能力,它就能进行进程通信。上面所描述的其实是我们对 Socket 通信的直观描述。抽象出来,进程通信的端点实质上就是 Socket 端口。如果双方想要进行通信
18、,那么双方必须要彼此创建一个端点,否则没法通信,没法联系。每一个 Socket 都有一个本地的 Socket 号并且是唯一的,由操作系统来分配。最重要的是, Socket 是面向客户服务器模型而设计的。客户随机申请一个 Socket 号,服务器拥有全局公认的 Socket,任何客户都可以向它发出连接请求和信息请求。 Socket 利用客户 /服务器模式巧妙的解决了进程之间建立通信连接的问题。服务器 Socket 为全局所公认非常重要。两个完全随机的用户进程之间,因为没有任何一方 的 Socket 是固定的,要通话是不可能的。 2.3 Socket协议简析 表 2-1 对 Socket 通信协议
19、做了简单的简析。 表 2-1 Socket 通信协议 Socket 通信 流式套接字 流式套接字定义了一种面向连接的服务,实现了无差错无重复的顺序数据传输。 数据报套接字 数据报套接字接口定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不一定可靠。 原始套接字 原始套接字允许对低层协议 IP 或 ICMP 直接访问,主程序,就是通过 ICMP 实现的 6。要应用网 络协议的测试,例如 Windows 带的 Ping 程序,就是通过ICMP 实现的。 表 2-2 阐述了创建一个 Socket 必须要 3 个参数 :协议簇,接口类型,接口协议。这 3 个协议主要用于 Sock
20、et 的高级编程 7。 表 2-2 创建 Socket 的参数 创建一个Socket 协议簇 PF_INET 表示支持 IPv4 协议, PE_INET6 表示支持 IPv6 协议; 接口类型 SOCK_STREAM 表示基于 TCP 的字节流接口; SOCK_DGRAM 表示基于 UDP 的 Socket 接口; SOCK_RAW 表 示原始 Socket 接口; 接口协议 TCP 协议; UDP 协议 TCP 是面向连接的、可靠的数据传输服务,数据无重复、无差错发送 ,且按发送顺序接收 8。 UDP 是面向无连接的数据传输服务,数据以独立包形式发送,不提供无错保证,数据可能丢失或重复,并且
21、接收顺序混乱 9。 客户机 服务器 图 2-1 TCP 协议通信的套接字程序流程结构 Windows Socket 是一种网络编程接口,它定义一组标准例行函数,应用程序通过调用这些函数可以和不同网络中的应用程序进行通信而不必担心网络协议不同所引发的问题。 2.4 Socket 通信机制 Socket 是一个能够与远程计算机相互通信的底层 API,是开发网络应用程序的核心元素,其应用基本都基于服务器和客户端 11。 表 2-3 分别阐述了 Socket 通信机制的 2 种方式的优缺点。 Socket(分配套接 字 )字) Bind(绑定地址) accept(接受连接) recv(接收数据) se
22、nd(发送数据) Close Socket Socket(分配套接字 )字) Bind(绑定地址) Connect(连接) Send(发送数据 ) Recv(接收数据) CloseSocket 连接请求 接受连接 表 2-3 Socket 通信机制的两种方式 Socket 通信机制 流方式 采用的是 TCP 协议,提供双向的、有序的、无重复并且无记录边界的数据流服务。应用程序间的通信需要建立连 接,使用连接和 终止连接三个过程,其数据收发顺序一致, 内容相同。其特点是通信可靠,对数据有校验和重发,适合大量的数据传输。 数据报方式 采用 UDP 协议,提供无连接数据报传输,支持双向的数据流,但是
23、不保证其是否可靠,有序,无重复。也没有重发机制。但是可以达到较高的通信速率。 图 2-2 描述了 Socket 通信的简单过程。其过程如下:当 服务器向客户机发出建立 Sever 请求,并且在指定的端口监听,客户机收到请求,并且建立 Socket对象,那么客户机就会向服务器发出建立连接。那么服务器也会建立 Socket 对象。此时客户端会发出服务请求,那么服务器就会读取客户的请求,从而处理并返回结果。服务器就读取数据。那么,一次完整的通信就完成了。 服务器 客户机 建立连接 请求 响应 图 2-2 Socket 通信机制 建立 Sever 请求 建立 Socket 对象 在指定端口监听 建立 Socket 对象 读 取客户请求 处理并返回结果 发起连接请求 发出服务请求 读取数据
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。