基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc

上传人:文初 文档编号:280965 上传时间:2018-08-23 格式:DOC 页数:34 大小:3.93MB
下载 相关 举报
基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc_第1页
第1页 / 共34页
基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc_第2页
第2页 / 共34页
基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc_第3页
第3页 / 共34页
基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc_第4页
第4页 / 共34页
基于Socket技术的Windows Mobile设备间的文件传输工具开发【毕业论文】.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、 本科毕业设计 ( 20 届) 基于 Socket 技术的 Windows Mobile 设备间的文件传输工具开发 所在学院 专业班级 电子信息工程 学生姓名 学号 指导教师 职称 完成日期 年 月 - 1 - 摘 要 在网络通信中, Socket技术是发送端到达接收端的一个有效途径,在网络传输层上建立通信关系,实现数据交互的接口。由于网络通信的复杂性,在建立通信关系的前提下,必须引进线程机制处理通信细节,以确保各节点通讯的独立和并发。在 Windows Mobile设备上实现基于 Socket的文件传输,必须深入理解线程的处理技巧,同时将其灵活运用到通信网络编程中,完成文件传输的功能。 本课

2、题首先介绍了 Socket技术的原理,通过 Socket技术,线程技术和网络通信方面内容,联系到 Windows Mobile,在 Visual Studio 2008开发环境中进行应用程序开发,通过运用 Socket技术 ,实现目标。 本文研究并实现了 Windows Mobile下的套接字连接和手机之间数据传输等操作。主要详细讲解了 Windows Mobile下套接字的体系结构与核心功能类等必要的知识脉络;对主机域名解析服务与网络接入点相关操作技术做了进一步的了解和研究,并详细分析了 Windows Mobile下的套接字连接的操作实现;最后在介绍了 PC端的套接字连接相关知识的基础上,

3、结合 PC端套接字操作的程序流程,用代码实现系统数据传输,验证了研究的正确性,方向性和可靠性。并为手机间文件的相互传输提供了一个很好的服务平台。 关键词: 套接字;线程;网络通信;文件传输 - 2 - Abstract In Network Communication, Socket identified an effective way from the sender to the receiver, to establish communications upon the transport layer and to implement the interface for data int

4、eraction. Because of the complexity of network communications, in order to establish communications, we must introduce thread mechanism processing communication detail to ensure the independence of each node. In order to implement file transferring based on Socket in Windows Mobile devices, we must

5、have a deep understanding about the skills of thread handling and make a good use of it on communication network programming to implement the function of file transferring. This paper introduces the principle of Socket technology first. Then connect Socket technology, thread technology, network comm

6、unications skills with Windows Mobile to achieve our goal which have simulation in Visual Studio 2008. By the means of researching, it has been implemented to connect by Socket and transfer data. In this paper, it is mainly explained in details about the socket in Windows Mobile Architecture and bas

7、ic knowledge of the core functional classes, etc. ; it has in-depth research and development about the host domain name resolution services and the operations of the network access point technology. Then it has analyzed in details on Windows Mobile realization of the socket connection; finally it ha

8、s introduced the basic knowledge of the PC side of the socket connection, combined with PC-socket operation of the program flow, code implementation of data transmission system to verify the correctness and reliability of the research and provide a good platform for extracting and receiving files fo

9、r mobile phones. Keywords: Socket; thread; network communication; file transfer - 3 - 目 录 1 引言 . 1 1.1 研究背景 . 1 1.2 研究内容 . 2 1.3 研究现状 . 2 2 SOCKET 技术及其线程通信 . 3 2.1 Socket 技术简析 . 3 2.2 Socket 的分类 . 4 2.3线程原理 . 7 2.4 网络通信原理 . 9 3 SOCKET 应用程序开发 . 11 3.1 WINDOWS MOBILE简介 . 11 3.2 VISUAL STUDIO 开发环境 介绍 .

10、 11 3.3 网络连接的建立 . 12 3.4.设备间的文件传输开发 . 15 3.4.1 新建工程 . 15 3.4.2 服务器端 . 16 3.4.3 客户端 . 17 3.4.4 应用程序测试 . 18 4 结论 . 21 致 谢 .错误 !未定义书签。 参考文献 . 22 附录:应用程序源代码 . 24 - 1 - 1 引言 Socket编程技术作为进程问通信的常用技术,以其能够灵活定制包格式、灵活构造高效通信服务等优势成为构建基于 TCP/IP协议的网络应用程序时最常用的开发技术之一。由于开发基于 Socket通信的网络应用程序时不必关心 Socket通信部分的平台移植问题、 So

11、cket通信问题等一系列兼容性问题,可以直接构造应用,从而大大加快开发进度 1。 目前还没有一个解决兼容性的问题开放式框架,可用于构建基于 Socket通信应用为基础的网络,而建立 UDP服务器,客户端的 TCP长连接往往是建立 Socket技术的应用程序的关键所在。因此,建立一个支持多个 TCP和 UDP服务器,多个 TCP长连接的客户端 Socket通信框架对于大力加快项目开发进度,降低了移植代码的困难具有重大意义。 1.1 研究背景 在早期,一个加利福尼亚大学的一个分校研究组,让他们 将 TCP/IP软件移植到 UNIX操作系统中,并将结果提供给其他网点。他们创建了一个接口,应用程序可以

12、通过这借口进行通信。并且他们认为只要有可能就使用以有的系统调用,对那些不能快速升级到已有函数集的情况,就再增加新的系统调用以支持 TCP/IP功能。这样做的结果就出现了插口接口( Berkeley Socket),这个系统被称为Berkeley UNIX或 BSD UNIX。 TCP/IP 首次出现在 BSD 4.1 版本 release 4.1 of Berkeley Software Distribution。由于很 多计算机商人都采用了 Berkeley UNIX,因此, Socket接口被广泛使用,也成了现在的标准。 Socket的英文原意就是“孔”或“插座”,现在,作为 BSD UN

13、IX的进程通讯机制,取其后一种意义。表面意义为,通信间需要一个 Scoket作为两者之间的媒介。 - 2 - 1.2 研究内容 一般情况下,用户都会使用 Windows Mobile设备上的 WiFi模块来接入 Access Node, 以 达到交互的目的。但是 如果 在没有 Access Node的情况下, 同样也 可以利用 WiFi来建立设备与设备之间的连接, 这 就是所谓的 Ad-hoc网络。本课题要求学生理解 Socket网络编程的基本原理,研究如何在 Windows Mobile设备上实现基于 Socket的文件传输,并通过 Visual Studio 2008进行软件开发。 研究内

14、容主要包括: 1. 利用 WiFi建立设备连接,为设备之间的文件传输提供前提; 2. 设备连接后,编写客户端和服务器端的两个应用程序,并进行设置; 3. 设置完成后, Windows Mobile设备之间利用 Socket来实现消息的实时发送与接收,以完成设备之间的文件传输的目的。 1.3 研究现状 网络通信 技术随着应用需求的巨大增长而迅速发展着。目前,许多通信手段满足不了需求剧增的们,对于开发新的通信技术显得尤为重要。而 Socket技术作为 IT网络一个不可或缺和占主要地位的一部分。从 80年代的早期起步到如今的成熟, Socket技术也更加的重要了,许多的 IT领域都离不开 Socke

15、t技术。如今世界在发展,科技在进步,网络更是日新月异,因此, Socket技术也会更加的发展,更加的体现了 Socket的含金量。 - 3 - 2 Socket 技术及其线程通信 本章讲述 Socket技术的含义,提出 Socket的原题,在本课题中的用 处,以及线程技术的原理与含义。 2.1 Socket 技术简析 应用层通过传输层进行数据通信和信息交互时,会出现 TCP和 UDP同时遇到为多个应用程序进程提供并发服务的问题。而且多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。因此为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与 TCP/IP协议交互提供了称为套接

16、字 (Socket)的接口,区分来自不同应用程序进程间的网络通信和连接请求。 通信的目的 IP地址、使用的端口号和使用的传输层协议 (TCP或 UDP)是生成套接字主要 3个参数。通过将这 3个参数结合起来,与一个 Socket绑定,应用层就可以和传输层通过套接字接口,实现数据传输的并发服务 2。 Socket可以看成在两个程序进行通讯连接中的一个端口,一个程序将一段信息写入 Socket中,该 Socket将这段信息发送给另外一个 Socket中,使这段信息能传送到其他程序中,实现数据传输。如图 2-1所示。 Socket (网络接口卡 ) Socket Program A Program

17、B 网络管理软件 图 2-1 Socket传输示意图 在 Linux中的网络编程通过 Socket接口进行 ,是一种特殊的文字描述符。Socket是使用标准 Linux文件符( file descriptor)和其他程序通信的方式。在Program A Program B - 4 - 这里 Socket编程采 用客户端 /服务器模式,如下图 2-2所示。 图 2-2 Socket 客户端 /服务器模式 Socket是网络传输层供给应用层的编程接口,是一个数据交互的转接点。而传输层则在网络层的基础上提供进程与进程间的逻辑通道,应用层的进程则需要利用传输层向另一台主机的某一进程通信,从而达到信息交

18、互。 Socket编程对客户端和服务器应用程序进行开发研究,以便它可以在 本地网络上进行通信,还可以通过互联网在世界各地进行交流。 Scoket编写并运行客户端和服务器程序,双方通过建立一个套接字,并通过多种方式提高性能的 socket数 2。 2.2 Socket 的分类 常见的 Socket有 3种类型。 ( 1)流式套接字( SOCK_STREAM):提供可靠的通信流量,采用面向连接的TCP协议,以确保数据传输的准确性和顺序。 ( 2)原始套接字( SOCK_RAM):允许直接访问底层协议,功能强大,但不太方便使用,主要用于一些协议的开发。 ( 3)数据报套接字(为 SOCK_DGRAM

19、):通 过独立传输的数据包,是无序的,不保证可靠,无差错,它定义了一个连接为导向的服务,使用数据报协议 UDP。 Socket编程使用客户机 /服务器模式。因此,分为服务器端编程和客户端编程两部分。每一个 Scoket用一个半相关(协议,本地地址,端口)来表示, Scoket也有一个功能类似于打开文件的函数,该函数返回一个整数 socket描述符,通过Socket Socket 1 3 4 2 客户端 服务器 - 5 - Scoket建立数据传输来实现目的 。其流程图如下图 2-3所示。 服务器端 客户端 图 2-3 客户端 /服务器 Socket通信流程图 服务器端完成的功能是:处理某一可用

20、端请求。因为是多客户,所以采用多线程,为每一个在线用户分配一个客户线程,实时处理每一个客户的 实时 请求。 服务器结构如图 2-4所示。 Socket() 建立流程套接字 Bind() 配置本地端口和 IP Listen() 监听和接收服务器请求 Accecpt() 接收服务器请求建立连接 Recv()和 Send() 接收和发送信息 Close 关闭套接字 Socket() 建立流式套接字 Bind() 配置本地端口和 IP Connect() 与远程服务器连接 Send()和 Recv() 发送和接收信息 Close 关闭套接字 关闭套接字( Close) 关闭套接字( Close) -

21、6 - 通讯 线程 a 客户 a 线程 b 客户 a 线程 c 客户 a 申请连接 服务器程序 图 2-4 服务器系统结构图 ( 1)客户端代理类( Agent): 此 类存储对应客户端的数据, 其 包括登录用户名、 Socket、互斥锁( mutex) 等 。该 Socket对象构造一个输入 in和一个输出流 out,客户代理通过这一对输入输出流与客户端的 Socket进行数据交互。 ( 2)服 务监听器( ServerSocket):由主程序启动,监听服务器的服务端口,为每一个请求连接的 客户端 建立一个客户代理线程。 ( 3)客户代理线程( AgentThread) : 实时通过监听客户

22、端的事务请求,按照 “ 对话流程 ” 进行解码,根据解析得到的事务类型,交给客户事务处理模块进行具体处理。 ( 4)客户事务处理( Processor):处理客户的事务请求。根据客户的请求执行相应的数据处理和操作。通过引用用户列表中的客户代理发送消息。事务处理模块引用客户代理对象时,必须进行申请操作( wait(),之后释 放资源。改模块根据事务类型,进行转发信息、注册用户、注销用户。 ( 5)用户列表( Vector):存储每一个登录客户的客户代理( Agent),使得 事务 处理模块可以引用各个客户代理进行事务处理。 Socket Socket Socket ServetSocket Socket Socket Socket

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。