• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns

MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns


目前android很多开源的网络通信库大多是基于http, 像Volley, android-async-http等等,在WAN上的网络通信是个不错的解决方案,而对于在局域网内的通信场景,上面基于http的网络通信仍然有效,但是并非所有的服务端都采用http服务,MirrorNetwork正是在这个需求下产生,它基于jmdns来实现服务自动发现,零网络配置,基于netty来实现android设备间的网络通信。

              

 

(1) 消息模型MirrorMessage   MirrorNetwork定义了一种消息模型MirrorMessage,它包含三个重要成员:   MIRROR_APPTYPE appType:消息承载的应用类型,使得MirrorNetwork收到该消息后,可以判断将该消息分发给哪个应用上层的消息监听对象(该类实现IMirrorMsgListener)。   String peerAddress:server使用,MirrorNetwork支持多个client同时连接一个server, server发送消息给其中一个client,需要指定该client的地址   Object content:消息承载的应用层需要的真正内容,应用层可以根据业务自定义content类,仅需要该类实现Serializable。   (2) 消息通信实体 MirrorNetwork定义了一个接口类INetworkConnection,通过这个接口类,我们可以自定义各种不同的具体通信实体,MirrorNetwork基于netty定义了两个通信实体类NettyClient和NettyServer,这两个类实现了INetworkConnection接口。
public interface INetworkConnection {
 /**
  *
 * @Title: start  
 * @Description: cli/svr endpoint connects into network(connect/bind)
 * void
 * @throws
  */
 public void start();
 
 /**
  *
 * @Title: send  
 * @Description: send msg to peer, notice:
 * for supporting cli:svr=*:1
 * if svr sends msg to cli, mirrormessage req must set peerAddress.
 * if cli sends msg to svr, peerAddress not need set.
 * @param req
 * @return
 * MIRROR_TRANSFSTATUS
 * @throws
  */
 public MIRROR_NETSTATUS send(MirrorMessage req);
 
 /**
  *
 * @Title: stop  
 * @Description: just close network connection, you can start again for connecting again
 * recommend using stop for simple.
 * void
 * @throws
  */
 public void stop();
 
 /**
  *
 * @Title: close  
 * @Description: close network connection and release all resources.
 * void
 * @throws
  */
 public void close();
 
 /**
  *
 * @Title: setMirrorMsgListener  
 * @Description: set msglistener for recving msg from peers,
 * you are allowed registering listener once for each appType.
 * @param appType
 * @param li
 * @return
 * boolean
 * @throws
  */
 public boolean setMirrorMsgListener(MIRROR_APPTYPE appType, IMirrorMsgListener li);
 
 /**
  *
 * @Title: isClosed  
 * @Description: check if network connection was closed.
 * @return
 * boolean
 * @throws
  */
 public boolean isClosed();
}

 

通信实体(nettyclient, nettyserver)通过setMirrorMsgListener方法为每种业务层(指定MIRROR_APPTYPE)设置监听对象,用来实现异步通信,接收对端消息。

 

  MirrorNetwork的实现代码和使用指南,请访问https://github.com/europelee/MirrorNetwork

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MirrorNetwork 基于jmdns和netty的android网络通信开源库,mirrornetworkjmdns

相关文章

  • 2017-05-26AsyncTask.cancel()的结束问题,asynctaskcancel
  • 2017-05-26android 自定义图片合集(自定义控件)
  • 2017-05-26Android中常见的图片加载框架,
  • 2017-05-26让java程序在后台一直执行(例如putty关闭后后台程序继续运行)
  • 2017-05-26Unity加入Android广告小结,unityandroid小结
  • 2017-05-26仿拉手团购App2--当前城市选择Activity,app2--activity
  • 2017-05-26App引导界面,可以这么玩
  • 2017-05-26Android 手机卫士--获取联系人信息并显示与回显,android回显
  • 2017-05-26安卓6.0(棉花糖)新特性汇总,安卓6.0
  • 2017-05-26android:从另外一个activity中返回数据

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android开发学习——应用安装过程,android开发
    • android http同步请求,android同步请求
    • 保持listview当前位置,listview当前位置
    • IRQ全称为Interrupt Request
    • Android开发学习之路--百度地图之初体验
    • Android程序中使用iconfont心得,androidiconfont
    • 致DBA:为什么你经常犯错,是因为你做的功课不够
    • 热修复,android热修复
    • 散列表的数学分析(精解)--通过链表法解决碰撞,数学分析精解
    • 认识一下Kotlin语言 Android平台的Swift

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有