毕业论文-基于Android平台的无线手机助手设计36780.doc

上传人:爱问知识人 文档编号:3938536 上传时间:2019-10-10 格式:DOC 页数:48 大小:508.02KB
返回 下载 相关 举报
毕业论文-基于Android平台的无线手机助手设计36780.doc_第1页
第1页 / 共48页
毕业论文-基于Android平台的无线手机助手设计36780.doc_第2页
第2页 / 共48页
毕业论文-基于Android平台的无线手机助手设计36780.doc_第3页
第3页 / 共48页
毕业论文-基于Android平台的无线手机助手设计36780.doc_第4页
第4页 / 共48页
毕业论文-基于Android平台的无线手机助手设计36780.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《毕业论文-基于Android平台的无线手机助手设计36780.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于Android平台的无线手机助手设计36780.doc(48页珍藏版)》请在三一文库上搜索。

1、毕业设计(论文)题 目 基于Android的无线手机助手 姓 名 学 号 专业班级 信息0901 所在学院 信电分院 指导教师(职称) 二一三 年 五 月 九 日42基于Android的无线手机助手【摘要】 本课题先讨论了当前手机管理类应用程序的背景、现状和发展趋势,并分析了手机管理类应用程序现有的功能。本课题根据用户的需求,基于Android技术,利用ftp远程共享原理来实现无线手机助手的设计。本课题研究的无线手机助手采用的是基于C/S架构的MVC系统,基于ftp远程文件共享的Android技术,和Eclipse应用开发工具,利用网络代理作为中转服务器,利用Android 2.2作为系统平台

2、进行开发,对无线手机助手业务进行分析、设计,实现了登陆验证、浏览文件、文件上传、下载、删除等功能,以期达到快捷管理手机文件的目的。 【关键词】 手机管理,手机助手,文件管理,Android,Ftp浙江大学城市学院毕业论文AbstractWireless Mobile Assistant Based On Android【Abstract】 This subject discussed the background, status and trends of phone management applications on the first.And analyzes the existing

3、functionality of the phone management applications.This subject based on the needs of users and based on Android technology to use the the ftp remote shared principle to achieve the design of wireless handsets assistant.Wireless mobile assistant for the research is based on C/S structure of the MVC

4、system, ftp remote file sharing, based on Android technology and the Eclipse application development tools, using the network proxy as a relay server, using Android 2.2 as a system platform developed.Through analysising and designing the wireless mobile assistant,this subject achieves login authenti

5、cation, browse files, file upload, download, delete and other functions in order to achieve the purpose of the comfortably manage phone files.【Key Words】 Mobile Management,Mobile Assistant,File Management,Android,Ftp浙江大学城市学院毕业论文目录目录第1章 绪论11.1 应用的开发背景11.2 本课题研究内容1第2章 相关理论及关键技术22.1 Android特性简介22.2 And

6、roid系统架构32.2.1 关键应用程序32.2.2 应用程序框架32.2.3 C/C+函数库42.2.4 Java程序运行环境42.2.5 Linux内核42.3 Android应用程序框架42.3.1 Activity52.3.2 Intent Receiver52.3.3 Service52.3.4 Content Provider5第3章 需求分析63.1 概述63.2 功能需求63.2.1 设置界面63.2.2 控制界面73.2.3 说明界面73.3 性能需求73.3.1 手机系统要求73.3.2 灵活性73.3.3 时间特性的要求83.3.4 软件特性要求8第4章 总体设计94.

7、1 系统总体结构94.2 服务器系统解决方案9第5章 详细设计115.1 代理协议拟定115.1.1 DATA SOCKETS115.1.2 DISAMBIGUATING DEVICES AND SESSIONS115.1.3 AUTHENTICATION125.1.4 API125.2 关键代码实现155.2.1 代理连接155.2.2 会话线程175.2.3 TCP连接监听18第6章 系统实现206.1 Server端模块的设计206.2 Android设备端模块的设计21第7章 系统测试247.1 Android手机系统测试之打断事件247.2 测试中发现的问题及修复257.3 测试结果

8、257.3.1 开启服务257.3.2 客户端访问ftp地址257.3.3 登陆验证26结论27参考文献28附录29附录A 文件传输协议简介29附录B 应用程序界面代码30致谢41浙江大学城市学院毕业论文图目录图目录图2.2 Android的架构图3图3.2 设置界面用例图7图4.1 系统总体结构图9图4.2 服务器系统原理图10图5.2 程序运行效果图19图7.3.1 开启服务logcat图25图7.3.2 客户端访问ftp地址logcat图25图7.3.3 登陆验证logcat图26浙江大学城市学院毕业论文 第1章 绪论第1章 绪论1.1 应用的开发背景2007年11月由Google牵头有

9、30多家移动技术和无线应用领域领先企业组成的开发手机联盟(Open Handset Alliance)发布了其智能手机平台Android。Android是一个真正意义上的开放性移动设备综合平台,包括操作系统、用户界面、中间件和应用程序,拥有移动电话工作所需的全部软件,同时其开放性保证该平台不存在任何阻碍移动产业创新的专有权障碍1。随着Android的迅猛发展,国内各种优秀应用也相继诞生,豌豆荚系列产品是国内最早的手机管理类应用。豌豆荚是一款基于Android 手机管理软件,具有备份恢复重要资料、通讯录资料管理、应用程序管理,音乐下载、视频下载与管理等功能。在文件管理方面,最近上市的一款应用软件

10、文件大师。是一款功能强大的文件管理软件。文件大师支持对文件的全部常用操作,如拷贝,删除,粘贴等。采用了特别优化过的文件/目录复制算法,使得其在大量文件复制的时候比其他文件管理类工具速度更快。1.2 本课题研究内容在本课题中,主要研究在手机上建设FTP服务器,实现任意客户端可以登录FTP服务器上传下载文件。支持浏览器可视化浏览手机资源列表下载手机资源文件。通过计算机资源管理器或我的电脑管理手机:添加、删除、编辑等操作,全方位管理手机文件,实现无需数据线即可管理手机的功能。浙江大学城市学院毕业论文致谢第2章 相关理论及关键技术2.1 Android特性简介Dalvik虚拟机:Android采用的J

11、ava虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高2。内嵌浏览器:基于开源的浏览器网页排版引擎WebKit。优化的图形:强大的自定义二维图形库。基于OpenGL ES 1.0标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLitet提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open

12、 Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(EnhaIlced Data Rate for GS

13、M Evolution),是增强型数据速率GSM演进技术3。Camera,GPS,compass,and accelerometer:(依赖硬件)GPS(Global Positioning System)全球定位系统。它是一个由覆盖全球的24颗1J星组成的卫星系统。Compass是个开放源代码的JAVA搜索引擎框架4。强大的开发环境:包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。Eclipse是个集成开发环境。2.2 Android系统架构Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,通过编译基于

14、框架的应用程序可以降低开发负荷。应用软件原则上是在Dalvik VM上运行的。Android的架构图如下图2.2所示:图2.2 Android的架构图52.2.1 关键应用程序Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。开发语言是Java。2.2.2 应用程序框架Android应用程序的开发基于框架和组件。Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。2.2.3 C/C+函数库Android应用程序

15、框架之下是一套C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。这些函数库包括:标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等6。2.2.4 Java程序运行环境Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。Dalvik虚拟机的可执行

16、文件被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式7。Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。2.2.5 Linux内核Android系统平台是基于优化了的Linux内核,是其系统平台的核心8。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。2.3 Android应用程序框架对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、C

17、ontent Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成9。在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等10。2.3.1 ActivityActivity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互11,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界

18、面。2.3.2 Intent ReceiverIntent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户12。当一个Intent Receiver被触发时,系统会在需要的时候启动对应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。各种应用还可以通过使用ContextbroadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯13。2.3.3 ServiceService是提供连续信息的应用程序。它是

19、运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。本系统客户端扩展功能的阅读器就是采用Service来进行设计和开发的,使用户可以边聊天边看书。2.3.4 Content ProviderContent Provider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完成。使用Content Provider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存

20、储设备的细节,从而使应用系统具有良好的数据14。第3章 需求分析3.1 概述随着手机功能不断增强,手机管理类工具软件已成为智能手机重要软件之一,开发一款符合广大用户需求的手机文件管理类应用有很好的市场前景和意义。本课题的目标是开发一款基于Android平台符合用户使用需求的手机文件管理助手。实现任意客户端可以登录手机FTP服务器上传下载文件。支持浏览器可视化浏览手机资源列表下载手机资源文件。通过计算机资源管理器或我的电脑管理手机:添加、删除、编辑等操作,全方位管理手机文件,实现无需数据线即可管理手机的功能。3.2 功能需求作为Android平台上开发的应用软件,它具有与用户交互的界面,界面简洁

21、美观易于操作。因此,对手机阅读器的功能规定可以从手机阅读器的界面来划分。手机助手的用户操作界面分为一下三部分:设置界面,控制界面,说明界面。3.2.1 设置界面用户设置ftp服务器的账号和密码,端口号默认为2121,手机文件路径默认为/sdcard。设置界面用例图如下图3.2所示:图3.2 设置界面用例图3.2.2 控制界面用户触摸开关按钮控制服务器的开启与关闭,只有当手机连接到wifi网络时才能开启该共享服务功能。当服务开启时,状态栏显示“无线手机助手接受ftp连接”。程序自动获取手机ip地址,控制界面提示“在我的电脑里输入ftp:/xxx”用户输入ftp地址即可远程操作手机中的文件。3.2

22、.3 说明界面为用户提供本应用的使用说明以及注意事项。3.3 性能需求3.3.1 手机系统要求Android系统2.2版本以上,对以后继续进行升级开发有可延续性。3.3.2 灵活性软件基于Android操作系统,是基于组件的开发方式。3.3.3 时间特性的要求软件的速度要在用户可接受的范围能扩展需求。3.3.4 软件特性要求软件运行速度要在用户可接受的范围之内,对电量等消耗要在用户可接受范围之内。保证在有wifi热点的区域使用,手机具备sd卡。第4章 总体设计4.1 系统总体结构系统的总体设计思路是在Android手机上部署一个ftp服务器,负责提供服务并与pc客户端通信。pc作为管理手机资源

23、的客户端,通过“我的电脑”或“资源管理器”进行文件操作。这实际上是一个C/S结构的系统,Android手机作为服务器,pc作为客户端。系统总体结构图如下图4.1所示:图4.1 系统总体结构图在该系统中,网关连接了内部网络和智能外部网络,所有内部的设备与该网关相连。用户携带Android智能手机进入空间后,手机端连入网络,动态获取一个IP地址,运行ftp服务。PC访问ftp地址与服务器进行交互。Android手机与PC之间通过Socket进行通信15。4.2 服务器系统解决方案由于Android设备不能够接受入站连接,但它可以自由创建出站连接。因此Android设备上建立永久保持一个TCP连接到

24、代理服务器。我们称之为“命令连接”。在本课题中,利用代理服务系统作为Pc和Android手机的中介信使,解决了Android手机的入站连接限制。当FTP客户端希望通过代理连接,它启动一个正常的FTP连接到代理服务器。代理通知本应用程序有一个即将到来的FTP会话等待被建立。 本应用程序建立另一个TCP连接到代理(除了现有的控制连接),这个连接将被用于专门从FTP客户端发送和接收数据。服务器系统原理图如下图4.2所示:图4.2 服务器系统原理图第5章 详细设计5.1 代理协议拟定这整个代理系统的存在是为了解决入站连接限制。移动电话服务供应商阻止入站TCP连接,解决方法是在互联网上创建一个代理服务。

25、Android设备是不能够接受入站连接,但它可以自由创建出站连接。因此Android设备上建立永久保持一个TCP连接到代理服务器。我们称之为“命令连接。”只要本应用程序运行着这个连接就存在,除非用户明确禁用它。当FTP客户端希望通过代理连接,它启动一个正常的FTP连接到代理服务器。代理通知本应用程序有一个即将到来的FTP会话等待被建立。 本应用程序建立另一个TCP连接到代理(除了现有的控制连接),这个连接将被用于专门从FTP客户端发送和接收数据。重要的一点词汇:“命令”连接,是本应用程序和代理服务器之间的TCP连接。此连接使用新的协议,如下所示。“控制”连接,是FTP客户端和本应用程序之间的普

26、通的FTP连接。使用普通的FTP协议,其中客户端发送的东西像USER,LIST,RETR,服务器响应“200 OK”,“503 Forbidden”等。5.1.1 DATA SOCKETSFTP协议的设计决定了新的TCP连接,独立于控制连接,它在每次有一个目录列表或文件传输时被创建。当它要执行动作时,需要跟客户端有一个新的data socket(新的TCP连接)本应用程序创建另一个TCP连接到代理。5.1.2 DISAMBIGUATING DEVICES AND SESSIONS由于代理服务器上运行在一个单一的IP和端口,提供多个设备和用户使用,因此它需要一些匹配传入连接的方式。例如,在PAS

27、V模式文件传输,本应用程序和客户端都要创建入站连接到代理服务器。在有许多客户端在同一时间被创建连接的情况下,代理使用的某种被称为“前缀”匹配这两个连接。前缀是6个字符的字母数字代码,唯一标识一个设备上运行本应用程序。它由代理服务器创建一个控制连接时分配,然后给本应用程序。5.1.3 AUTHENTICATION设备的安全识别是通过分配一个唯一的“secret”到每个设备运行本应用程序。此secret被分配的第一次设备连接到代理服务器,并在设备上保持不变。这并不是很安全,但很合适。这个系统不能很好的对抗ANDROID_ID欺骗。这是不幸的,但足够好。5.1.4 API请求和响应都是JSON的数据

28、形式。所有的请求都有一个顶层的字符串为“action”的请求类型。例如,请求创建一个帐户为如下形式: action : create_account android_id : 1234567890响应是一个JSON对象做为请求的响应。作为一个惯例,如果在处理请求时发生错误,响应对象将包含顶级的字符串名为“errorCode”和“errorString”来识别错误。该errorCode是一个唯一的数字来表示错误,Errorstring是可读的错误描述。例如,如果不能创建帐户,下面的语句可以作为一个响应返回给上面的创建账户请求: errorCode : 10 errorString: An acc

29、ount already exists for that ANDROID_ID 如果操作成功 secret : abcdefghijklmnopqrstuvwxyz0123456789成功的请求可能会导致一个响应是空的对象,如果没有错误报告和请求不要求返回任何值。这将是空的JSON对象,“”。例如,要求与行动“NOOP”会提示一个空的响应。在本应用程序已经建立TCP连接到代理以后本应用程序必须发送一下信息:- create_account- authenticate本应用程序到代理服务器的请求列表:Action: create_accountPurpose: 本应用程序第一次运行时只调用一次。

30、导致一个帐户被创建并创建一个秘密。应该返回的秘密存储在持久性存储器中。如果一个设备发送请求和接收响应表示成功,那么该会话被验证,那么设备可以发送其他请求。Params: android_id: Android API提供的唯一设备标识符 swiftp_version: 安装的FTP服务器版本Returns: secret: 此设备将用来认证密码的“秘密”Errors: 12: ANDROID_ID的完整性检查失败Action: authenticatePurpose: 验证设备。在调用任何其他命令之前调用(除create_account)。Params: android_id: Android

31、 API提供的唯一设备标识符 secret: 这个设备的秘密 swiftp_version: 安装的FTP服务器版本Returns: Empty object on successErrors: 11: ANDROID_ID不在数据库中,或秘密是错误的Action: start_command_sessionPurpose: 验证设备,并开始命令会话Params: NoneReturns: prefix: 前缀字符串用来识别这个会话和设备Action: data_pasv_listenPurpose: 使代理开始在新的端口监听从FTP客户端来的TCP连接请求。在代理已经收到了从FTP客户端的P

32、ASV命令以后,这个action将会被本应用程序调用,之后代理可以开始监听来自ftp客户端的入站数据连接请求。Params: NoneReturns: address: 一个字符串,给出FTP客户端应该连接的地址 port: 一个数字,给出服务器正在侦听的端口。Errors: None specific to this requestAction: data_pasv_acceptPurpose: 一个pasv_listen action后,代理将监听从FTP客户端来的入站连接。此请求将使得代理为FTP客户端传入的连接执行一个accept()方法。pasv_accept必须通过相同的连接发送相

33、关的pasv_listen请求。成功后,则返回空的JSON对象,socket将会进入代理模式,它会简单地在FTP客户端和本应用程序之间来回传递数据(它将不再接受请求)。Params: None Returns: Empty object on successErrors: 13: 代理等得太久没有收到一个连接请求Action: data_port_connectPurpose: 打开一个给定的地址和端口的出站连接,并开始数据转移。如果这个动作是成功的,则TCP连接将不再接受JSON请求,将成为一个简单的双向代理之间FTP客户端和SwiFTP Android应用程序。Params: addres

34、s: 代理应该打开的一个连接地址 port: 代理应该打开的一个连接端口Returns: Empty object on successErrors: 14: 代理无法打开连接到给定的地址和端口。Action: accept_control_connectionPurpose: 当有一个控制连接从FTP客户端发出,Android设备将被通知,在这个端口上它会连接一个新的socket,进行身份验证,并发送此请求。如果申请成功,则套接字将停止接受请求,并成为一个纯粹的在FTP客户端与之间本应用程序的代理。Returns: Empty object on successErrors: 11: 验证失

35、败代理服务器向本应用发送的请求:Action: control_connection_waitingPurpose: 这是发送命令连接指示本应用程序在给定的位置打开一个新的socket,并使用它作为一个新的FTP连接。这意味着有一个FTP客户端已连接,正在等待服务。 本应用程序会打开一个新的连接到代理服务器,身份验证,然后发送accept_control_connection。Params: port: 本应用程序应该连接的端口Errors: None specific to this request任何一方都可能发送的请求:Action: noopPurpose: 什么都不做,可以作为一个持

36、续的连接Params: noneReturns: empty response错误代码列表:0: 内部服务器错误。 ,errorString值可能包含更多的信息。10: 不能创建一个帐户,ANDROID_ID已经有一个帐户11: ANDROID_ID或秘密是无效的12: 无效ANDROID_ID的值13: PASV模式时socket在pasv_accept接受等待超时14: 在port_connect出站socket连接错误5.2 关键代码实现5.2.1 代理连接当要在PORT模式传输数据时,这个函数由ProxyDataSocketFactory调用。发送data_port_connect请求

37、到代理服务器,包含连接到FTP客户端的IP和端口。public Socket dataPortConnect(InetAddress clientAddr, int clientPort) try myLog.d(Sending data_port_connect to proxy);Socket socket = newAuthedSocket(this.hostname, Defaults.REMOTE_PROXY_PORT);if(socket = null) myLog.i(dataPortConnect got null socket);return null;JSONObject

38、request = makeJsonRequest(data_port_connect);request.put(address, clientAddr.getHostAddress();request.put(port, clientPort);JSONObject response = sendRequest(socket, request);if(response = null) return null; / logged elsewherereturn socket; catch (JSONException e) myLog.i(JSONException in dataPortCo

39、nnect);return null;传入一个从pasvListen()返回的socket,通过socket发送data_pasv_accept请求到代理,使得socket为向FTP客户端传输数据做准备。客户端将被告知已经被PASV命令的响应连接。public boolean pasvAccept(Socket socket) try JSONObject request = makeJsonRequest(data_pasv_accept);JSONObject response = sendRequest(socket, request);if(response = null) retur

40、n false; / error is logged elsewhereif(checkAndPrintJsonError(response) myLog.i(Error response to data_pasv_accept);return false;/ The proxys response will be an empty JSON object on successmyLog.d(Proxy data_pasv_accept successful);return true; catch (JSONException e) myLog.i(JSONException in pasvA

41、ccept: + e);return false;5.2.2 会话线程通过已经建立的数据socket发送一个字节数组public boolean sendViaDataSocket(byte bytes, int start, int len) if (dataOutputStream = null) myLog.l(Log.INFO, Cant send via null dataOutputStream);return false;if (len = 0) return true; / this isnt an errortry dataOutputStream.write(bytes,

42、start, len); catch (IOException e) myLog.l(Log.INFO, Couldnt write output stream for data socket);myLog.l(Log.INFO, e.toString();return false;dataSocketFactory.reportTraffic(len);return true;从假设已经被连接的数据socket收到一些字节,字节被放置在给定的数组,并返回成功读取的字节数。public int receiveFromDataSocket(byte buf) int bytesRead;if (

43、dataSocket = null) myLog.l(Log.INFO, Cant receive from null dataSocket);return -2;if (!dataSocket.isConnected() myLog.l(Log.INFO, Cant receive from unconnected socket);return -2;5.2.3 TCP连接监听如果的TcpListener线程在接受时被阻塞,关闭socket将引发一个异常public void quit() try listenSocket.close(); catch (Exception e) myLog

44、.l(Log.DEBUG, Exception closing TcpListener listenSocket);监听到客户端连接请求public void run() try while(true) Socket clientSocket = listenSocket.accept();myLog.l(Log.INFO, New connection, spawned thread);SessionThread newSession = new SessionThread(clientSocket,new NormalDataSocketFactory(), SessionThread.Source.LOCAL);newSession.start();ftpServerService.registerSessionThread(newSession); catch (Exception e) myLog.l(Log.DEBUG, Exception in TcpListener);程序运行效果图如下图5.2所示:图5.2 程序运行效果图第6章 系统实现6.1 Server端模块的设计Server端启动的时候,会加入到一个组播地址中,然后初始化Socket,对规定的端口进行侦听。当请求连接的报文到来时,performAuthentication会对用户的合法性进行验证,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1