一种基于Android的无线局域网通信方法技术

技术编号:14247657 阅读:49 留言:0更新日期:2016-12-22 04:33
本发明专利技术公开一种基于Android的无线局域网通信方法,基于Android的UDP Socket通信;实时发现有新的节点加入移动网络并更新节点列表;有节点离开时能实时做出响应并告知该网络中的用户,实现跨网段的通信。本发明专利技术详细分析了Android系统架构,应用程序的组成,着重探讨了Activity和BroadcastReceiver的工作原理和使用技巧,并以此为基础,采用Java为软件编程语言,无线WLAN技术为硬件支持,合理调用Android提供的组件内容,实现基于无线局域网的通信系统,通过系统开发与后期的实验测试,该应用软件可应用于野外考察、灾区救援等场合。

【技术实现步骤摘要】

本专利技术属于网络
,尤其涉及一种基于Android的无线局域网通信方法
技术介绍
在生产与生活当中,人与人之间离不开沟通与交流,随着科学的发展、技术的进步人们的沟通方式也在发生着潜移默化的改变。随着网络技术和软件技术的不断进步,越来越多的人通过社交网络来结识新的朋友,代表软件有:MSN、QQ、微信、易信等,但他们只是对传统社交网络的拓展。当今网络技术逐步朝着“高速”与“无线”的趋势过渡发展,无线网络以其独有的优势得到企业与个人的青睐。无线网络包含有:WLAN(无线局域网)、无线个人区域网、无线广域网和固定接入无线技术。其中,无线局域网发展最为迅速,产品也日渐成熟,它以IEEE 802.11b标准作为传输协议,支持最大的传输速率达到11Mbit/s。随后于1999年成立的WiFi联盟对无线局域网的发展提供可靠的保障。相较于有线局域网,无线局域网具有以下优点:移动性灵活:WLAN提供了对终端移动性的支持,去掉了布线的束缚,终端可在AP覆盖范围内任意移动,并且在保持网络连接不中断的情况下可在不同AP间移动切换。传输速率高:WLAN目前的传输速率可达11Mbit/s,通过应用OFDM技术的WLAN,可高达54Mbit/s,远远超过有线网络的传输速率。资源共享:在不超过规定容量要求的基础上,多个终端可共用一个AP。易于扩展:因为没有布线的局限,用户可随意地增添、重新建立工作站。基于网络通信的便捷性与经济性的需求,通过移动终端在无线局域网实现通信具有其存在的价值与意义。一方面,局域网内部进行通信,避免了同外网的数据交互,在安全性方面提供了很大的保障;另一方面,无线局域网以其灵活性、共享性、扩展性的优势,给企业和个人在生产与生活中带来极大的便利。同时,智能4G手机和无线网络技术的发展与制度的健全,移动终端基于无线局域网通信将有更广阔的发展前景与应用价值。智能手机的发展日新月异,使其对操作系统的性能要求也逐步提高,Android操作系统因其开源免费的优势得到众多开发者的青睐,厂商可根据市场的需求自主开发出对用户有吸引力的应用软件,例如:QQ、微信、知乎等等。而基于Android操作系统的无线局域网通信软件的研究与开发,对人们进行安全、短距离、低成本、高速率的通信需求将具有很大的用途。无线局域网的起源最早可追溯到第二次世界大战,该技术在军事战争方面的应用。随后20世纪70年代到90年代,以太局域网发展迅猛,无线局域网因其无需布线、灵活性强的优势得到市场的认可。但当时的无线局域网产品采用IEEE802.3的标准,易受微波噪声干扰、传输速率较低、各厂商产品间互不兼容等劣势,使其发展受到很大的限制。1990年11月,美国国际电子电机学会成立802.11委员会,开始制定无线局域网标准,才进一步促进无线局域网的高速发展。迄今已推出多项标准,例如:IEEE802.11、IEEEE802.11a、IEEE802.11b、IEEE802.11g等,下面选择几项进行重点介绍:IEEE802.11b:该标准是无线局域网标准中最著名、普及率最广的标准。其载波的频率为2.4GHz,数据传输速率为11Mbit/s,传输距离为50米至150米。通过该标准推出的产品运用于家庭、办公室、车站、酒店等诸多场合。IEEE802.11a:该标准采用了与原始标准相同的核心协议,工作频段为5.725-5.85GHz,数据传输速率最大可达54Mbit/s,传输距离为10米至50米,支持语音、数据、图像等众多业务。IEEE802.11g:该标准频段与802.11b相同,为2.4GHz,最大传输速率可达54Mbit/s传输距离为50米至100米。IEEE802.11n:该标准是近几年IEEE推出的新的802.11标准,目前仍处于草案阶段,传输速率预计将高达540Mbit/s。若该标准顺利推出,那它将比802.11b快上50倍,而比802.11g快将近10倍,数据将可被传输到更远的距离。国内企业在无线局域网的应用起步相对早些。在国外设备厂商的技术支持下,广州钢铁集团的各分厂、清华紫光旗下的紫光大厦和蓝润大厦等诸多地方都已通过无线局域网实现无线联网。于2001年起,国内无线局域网的应用推广出现了竞争的势态,参与市场竞争的运营商有中国网通基于802.11b无线协议推出的“无线伴侣”、中国电信也在基于802.11b协议推出了“天翼通”等。以上方案存在的主要局限性在于:1、无线网络接入依赖于网络服务运营商(ISP)提供的服务,连接到不同ISP接入点上的终端间进行通信时,需跨网进行,且访问控制受到ISP限制。2、无线网络拓扑依赖于接入点(AP)的布置,所有的终端都连接到对应的AP上,因此在AP覆盖范围外的终端相互间无法通信。3、无线网络的移动性、适用性局限大,通信终端智能在固定假设的AP基站覆盖范围内移动,不适用于野外、临时区域及其他不具备架设基站条件的区域。
技术实现思路
本专利技术的目的在于提供一种基于Android的无线局域网通信方法,旨在解决目前基于安卓系统搭建的无线局域网内的通讯节点列表获取、显示通讯节点信息、显示未查看消息数量、修改个人信息、节点加入或离开通讯状态的改变、接收发消息等技术不太完善的问题。本专利技术是这样实现的,一种基于Android的无线局域网通信方法,该基于Android的无线局域网通信方法包括:基于Android的UDP Socket通信;实时发现有新的节点加入移动网络并更新节点列表;有节点离开时能实时做出响应并告知该网络中的用户,实现跨网段的通信。进一步,基于Android的UDP Socket通信方法为:在广播数据包之前,发送方和接收方分别创建一个Socket对象,并指定DatagramPacket数据包存储要被发送的数据,在定义UDP Socket服务时,对一个固定的端口进行监听,在收发数据的过程中,调用Socket对象的send方法发送数据包,使用receive()方法对发送数据包发送过来的数据包进行接收,同时receive()进行阻塞;当消息从网络中到达后,消息所包含的数据被UDP的receive()方法返回前,数据存储在一个先进先出的接收数据队列中,一个UDP Socket所接受的数据存放在相应的唯一一个消息队列中,每个消息都关联自己源地址信息,每次receive()调用只返回一条消息,receive()方法中在一个缓存区消息的长度大小为n,而接收队列中的第一条消息的长度大于n,则receive()方法只返回这条消息的前n个字节,超出部分自动放弃且没有消息提示。进一步,接收方操作步骤为:A、启动Socket连接;B、创建一个multicastSocket对象,并设定监听端口;将UDP端口编号加入到组播组;C、创建一个byte数组进行接收,获得用户ID号和获得请求方的ip地址,并接收信息;D、创建一个空的DatagramPackage对象;E、使用receive()方法对发送方所发送的数据进行接收,同时进行阻塞;F、解析接收到的数据信息;所述数据信息包括接收方ID、发送方ID、用户的昵称、用户的IP地址、接收信息的时间;G、关闭Socket连接,离开组播组。进一步,发送方操作步骤为:a、启动Socket连接;b、本文档来自技高网
...
一种基于Android的无线局域网通信方法

【技术保护点】
一种基于Android的无线局域网通信方法,其特征在于,该基于Android的无线局域网通信方法包括:基于Android的UDP Socket通信;实时发现有新的节点加入移动网络并更新节点列表;有节点离开时能实时做出响应并告知该网络中的用户,实现跨网段的通信。

【技术特征摘要】
1.一种基于Android的无线局域网通信方法,其特征在于,该基于Android的无线局域网通信方法包括:基于Android的UDP Socket通信;实时发现有新的节点加入移动网络并更新节点列表;有节点离开时能实时做出响应并告知该网络中的用户,实现跨网段的通信。2.如权利要求1所述的基于Android的无线局域网通信方法,其特征在于,基于Android的UDP Socket通信方法为:在广播数据包之前,发送方和接收方分别创建一个Socket对象,并指定DatagramPacket数据包存储要被发送的数据,在定义UDP Socket服务时,对给定的固定的端口进行监听;需要发送数据时,通过监听到的唯一标识UDP套接字的连接ID打开UDP连接并设置通信超时上限,接着将待发送数据写入到发送缓冲中,然后调用Socket对象的数据发送方法send()发送数据包,send方法发送的数据报文包含目的IP地址、端口地址、消息缓冲区大小信息;需要接收数据时,通过监听到的唯一标识UDP套接字的连接ID打开UDP连接并设置通信超时上限与接收缓冲区长度n,然后调用Socket对象的数据接收方法receive()将发送过来的数据包写入到接收缓冲区,数据报文包含用户的ID号、IP地址、消息内容;数据接收方法在未完成从接收缓冲区读取UDP数据报的数据时,不对其它数据接收方法的调用;当消息从网络中到达后,消息所包含的数据被UDP的receive()方法返回前,数据存储在一个先进先出的接收数据队列中,一个UDP Socket所接受的数据存放在相应的唯一一个消息队列中,每个消息都关联自己源地址信息,每次receive()调用只返回一条消息;由于receive()方法中设置的消息缓存区的长度大小为n,因此当该消息长度大于n时,receive()方法最多只返回这条消息的前n个字节。3.如权利要求2所述的基于Android的无线局域网通信方法,其特征在于,接收方操作步骤为:A、启动Socket连接;B、创建一个multicastSocket对象,并设定监听端口;将UDP端口编号加入到组播组;C、创建一个byte数组进行接收,获得用户ID号和获得请求方的ip地址,并接收信息;D、创建一个空的DatagramPackage对象;E、使用receive()方法对发送方所发送的数据进行接收,同时进行阻塞;F、解析接收到的数据信息;所述数据信息包括接收方ID、发送方ID、用户的昵称、用户的IP地址、接收信息的时间;G、关闭Socket连接,离开组播组。4.如权利要求2所述的基于Android的无线局域网通信方法,其特征在于,发送方操作步骤为:a、启动Socket连接;b、创建一个multicastSocket对象,并将这个对象加入到组播组;c、创建一个InetAddress;d、将消息转为byte类型;e、创建一个DatagramPacket对象,并指定其要被发送到的网络中的目的地址以及端口号;f、调用multicastSocket对象的send方法发送数据;g、关闭Socket连接,离开组播组。5.如权利要求1所述的基于Android的无线局域网通信方法,其特征在于,实时发现有新的节点加入移动网络并更新节点列表方法包括:初始化指令缓存、检测网络状态,获取本地IP地址、启动Socket连接、注册广播接收器、获取自身信息、向网络发送心跳包,并注册自己;初始化指令缓存包括初始化用户注册指令缓存、初始化信息发送指令缓存;检测网络连接状况,获取本地IP地址;获得自身相关信息包括连接标志号、昵称及通讯节点数量,更新注册命令的用户数据和更新通话命令的用户数据;向网络发送心跳包,并注册自己为定时向对方发送心跳包,告知对方自己仍“在线”,心跳包发送时间间隔为10秒钟。6.如权利要求1所述的基于Android的无线局域网通信方法,其特征在于,检测网络连接状况,获取本地IP地址,方法为:首先,设置用户上网权限,允许Internet访问;然后,检测所有的网络接口,得到每一个网络接口绑定的IP地址;最后,判断如果该IP地址是IPv4地址且不是回送IP,则该IP地址就是该网络接口的IP。7.如权利要求1所述的基于Android的无线局域网通信方法,其特征在于...

【专利技术属性】
技术研发人员:梁庆中樊媛媛林启明姚宏曾德泽颜雪松胡成玉刘超
申请(专利权)人:中国地质大学武汉
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1