NIO框架的流行,使得开发大并发、高性能的互联网服务端成为可能。这其中最流行的无非就是MINA和Netty了,MINA目前的主要版本是MINA2、而Netty的主要版本是Netty3和Netty4(Netty5已经被取消开发了:详见此文)。
本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo。
本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo。服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了。同时用MINA2和Netty4分别实现服务端的目的,是因为很多人都在纠结到底是用MINA还是Netty来实现高并发的Java网络通信服务端,在此干脆两个都实现了,就看你怎么选择了,够吊吧。
[- 1 -] 一种Android端IM智能心跳算法的设计与实现探讨(含样例代码)
很多初涉网络编程的程序员,在研究Java NIO(即异步IO)和经典IO(也就是常说的阻塞式IO)的API时,很快就会发现一个问题:我什么时候应该使用经典IO,什么时候应该使用NIO?
本文引用了“架构师社区”公众号的《史上讲的最好的Java NIO与IO的区别与应用》一文部分内容,感谢原作者的技术分享。
搞网络通信应用开发的程序员,可能会经常听到外网IP(即互联网IP地址)和内网IP(即局域网IP地址),但他们的区别是什么?又有什么关系呢?另外,内行都知道,提到外网IP和内网IP就不得不提NAT路由转换这种东西,那这双是什么鬼?本文就来简单讲讲这些到底都是怎么回事。
随着互联网的发展,面对海量用户高并发业务,传统的阻塞式的服务端架构模式已经无能为力。本文(和下篇《高性能网络编程(六):一文读懂高性能网络编程中的线程模型》)旨在为大家提供有用的高性能网络编程的I/O模型概览以及网络服务进程模型的比较,以揭开设计和实现高性能网络架构的神秘面纱。
标题虽然是为了解释有了 IP 地址,为什么还要用 MAC 地址,但是本文的重点在于理解为什么要有 IP 这样的东西。本文对读者的定位是知道 MAC 地址是什么,IP 地址是什么。
本文接上篇《脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手》,继续脑残式的网络编程知识学习 ^_^。
Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。
最近和很多实时音视频领域的朋友交流中都有谈论到 RUDP(Reliable UDP),这其实是个老生常谈的问题,RUDP 在很多著名的项目上都有使用,例如 Google 的 QUIC 和 WebRTC。在 UDP 之上做一层可靠,很多朋友认为这是很不靠谱的事情,也有朋友认为这是一个大杀器,可以解决实时领域里大部分问题。
网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一。很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答。
本系列文章的前两篇《网络编程懒人入门(一):快速理解网络通信协议(上篇)》、《网络编程懒人入门(二):快速理解网络通信协议(下篇)》快速介绍了网络基本通信协议及理论基础,建议开始阅读本文前先读完此2篇文章。
京东的京麦商家后台2014年构建网关,从HTTP网关发展到TCP网关。在2016年重构完成基于Netty4.x+Protobuf3.x实现对接PC和App上下行通信的高可用、高性能、高稳定的TCP长连接网关。
本文上篇《网络编程懒人入门(一):快速理解网络通信协议(上篇)》分析了互联网的总体构思,从下至上,每一层协议的设计思想。基于知识连贯性的考虑,建议您先看完上篇后再来阅读本文。
站长提示:本文适合IM新手阅读,但最好有一定的网络编程经验,必竟实践性的代码上手就是网络编程。如果你对网络编程,以及IM的一些理论知识知之甚少,请务必首先阅读:《新手入门一篇就够:从零开发移动端IM》,该文为IM小白分类整理了详尽的理论资料,请按需补充相关知识。
即时通讯IM应用中的聊天消息时间显示是个再常见不过的需求,现在都讲究用户体验,所以时间显示再也不能像传统软件一样简单粗地暴显示成“年/月/日 时:分:秒”这样。所以,市面上几乎所有的IM都会对聊天消息的时间显示格化做人性化处理,从而提升用户体验(使用感受会明显友好)。
本文原题“《NIO 入门》,作者为“Gregory M. Travis”,他是《JDK 1.4 Tutorial》等书籍的作者。
论坛和群里常会有技术同行打算自已开发IM或者消息推送系统,很多时候连基本的网络编程理论(如网络协议等)都不了解,就贸然定方案、写代码,显得非常盲目且充满技术风险。
IM发展至今,已是非常重要的互联网应用形态之一,尤其移动互联网时代,它正以无与论比的优势降低了沟通成本和沟通代价,对各种应用形态产生了深远影响。
TCP的初识 TCP 是一种面向连接的,可靠的,基于字节流的传输层通信协议.TCP工作在网络OSI七层模型中的第四层-传输层,下面一张图展示OSI七层模型及每一层的作用和对应的协议. 图.png TC
最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样:
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动。
HTTP(全称超文本传输协议,英文全称HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
如果您正在寻找一种方法来帮助某些您每天执行的操作,正如简单的搜索显示的那样,可用的工具很多。如果您检查它们,会发现这些都声称可以使您的应用程序在线(即部署)更容易。但是,它们之间几乎没有区别 - 而且使用起来也很复杂。
第一章 入门 本章中,我们将给你关于什么是 MINA、什么是 NIO、我什么我们在 NIO 之上开发了一个框架以及你会在其中找到什么等等的第一认识。我们也将会给你演示如何在一台 MINA 的服务器上运行一个很简单的例子。 NIO 概述 NIO API 是由 Java 1.4 引入的,从此被广泛用于各种应用。NIO API 封装了 IO 非阻塞操作。 首先,最好了解一下 MINA 是基于 NIO 1 写的。Java 7 设计了一个新版本 NIO-2,(因为我们基于 NIO 1) 我们并没有从
奥斯卡金像奖,是每一部优秀影片的梦想;普利策奖,激励着新闻人走在追寻事实的路上;而诺贝尔奖,更是鼓舞着全球的专业人士,为人类的福祉而不停探索。 任何事物,只要在自己的领域上有所成就,都应该获得大力的肯定和嘉奖。小程序也不例外。 我们需要一个专业的奖项,来鼓励和支持品质出众的小程序,和它背后的开发者。 作为国内最好的小程序生态运营商,知晓程序(微信号 zxcx0101)在此正式推出 MINA 奖,业内首个为小程序设立的权威奖项。 什么是 MINA 奖? 「MINA 奖」是首个为小程序开发者设立的权威奖项,由最
Apache Mina是一个网络应用框架,简化用户开发高性能、高可扩展性的网络应用程序的难度。Mina提供了一个抽象的事件驱动的异步API,通过Java NIO实现各种传输协议如TCP/IP和UDP/IP。
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(当然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。目前正在使用 MINA 的软件包括有:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia Flash Media RTMP)、ObjectRADIUS、Openfire 等等。
今天给大家推荐一个NET上的轻量级高性能网络程序框架Mina.NET。支持TCP、UDP和串口等多种传输通道,能够帮助开发者快速地开发高伸缩性的应用程序。
MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA框架的应用比较广泛,应用的开源项目有Apache Directory、AsyncWeb、Apache Qpid、QuickFIX/J、Openfire、SubEthaSTMP、red5等。MINA框架当前稳定版本是1.1.6,最新的2.0版本目前已经发布了M1版本。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
mina框架是对nio进行的一个封装,可用于java的网络编程,包括TCP/IP和UTP/IP编程,主要屏蔽了网络通信的一些细节,对socket进行封装,并且是用nio的一个实现框架,mina的主要类如下:
自从有了表情包,我们聊天的方式都不一样了。 相比苍白的文字,表情包里的人物总能把每个人内心最复杂的情感表现出来。 但你一定有这样的烦恼:想发表情的时候,翻遍了微信表情栏里的所有「藏货」,都找不到任何准确描述自己内心真实想法的表情。 本期 MINA 奖,知晓程序(微信号 zxcx0101)决定颁发给「鬼畜表情包」。这款小程序,就是你触手可及的表情包大全,帮助你叱咤斗图场风云。 还不知道如何使用小程序?点击这里,手把手教你用! 微信里的斗图「战略储备库」 进入「鬼畜表情包」小程序,从首页就能找到一系列表情包分
前言: 找了篇文章看了看,nio框架数Mina用的最多! 代码: 服务端: package com.mina; import java.net.InetSocketAddress; import java.nio.charset.Charset; import org.apache.mina.core.service.IoAcceptor; import org.apache.mina.core.session.IdleStatus; import org.apache.mina.filte
Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP、UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务、虚拟机管道通信服务等),Mina 可以帮助我们快速开发高性能、高扩展性的网络通信应用,Mina 提供了事件驱动、异步(Mina 的异步IO 默认使用的是JAVA NIO 作为底层支持)操作的编程模型。Mina 主要有1.x 和2.x 两个分支,这里我们讲解最新版本2.0,如果你使用的是Mina 1.x,那么可能会有一些功能并不适用。学习本文档,需要你已掌握JAVA IO、JAVA NIO、JAVASocket、JAVA 线程及并发库(java.util.concurrent.*)的知识。
继续上一篇,这篇主要讲通过mina往B端发送消息。并接受消息,mina是一个网络通信框架,封装了javaNIO。简单易用。网上有非常多关于他的介绍,在此不赘述了。
最近一段时间以来,mina很火,和移动开发一样,异常的火爆。前面写了几篇移动开发的文章,都还不错,你们的鼓励就是我最大的动力。好了,废话少说。我们来看下tcp通讯吧。 tcp通讯对于java来说是很简单的。就是socket,也就是大家常说的套接字。大家不要把它看的很难。说白了tcp通讯其实就是数据流的读写。一条输入流,一条输出流。分别复杂发消息和接收消息。 明白了这些,ok,我们来看看我写的例子吧。先看服务器端的测试类的源码:
Netty是什么?为什么这么火? Netty是目前最流行的由JBOSS提供的一个Java开源框架NIO框架,Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 相比JDK原生NIO,Netty提供了相对十分简单易用的API,非常适合网络编程。Netty是完全基于NIO实现的,所以Netty是异步的。 作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获
知晓程序是爱范儿旗下专注小程序生态的品牌,我们已经做了这些: 知晓程序公众号(微信号 zxcx0101):做最好的小程序媒体,让你了解小程序的一切 小程序商店(minapp.com):全网首家小程序商店,已吸引海量小程序入驻,数量仍在不断增长中 未来小程序活动矩阵:包含黑客马拉松、MindTalk 、WorkShop,创造多样的小程序交流分享空间 《微信小程序入门指南电子书》:全网首本小程序电子书,已在多看阅读、微信读书、QQ 阅读上架 「知晓程序周榜 Top 100」第一期正式出炉! 从本周开始,知晓程
这里是知晓程序 · MINA 的第 5 期。 如何解决「最后一公里」的出行问题? 随着各色共享单车的普及,骑单车成为了一种方便、时尚有又健康的选择。而率先用上小程序新能力的「摩拜单车」小程序,成为「一扫即用,用完即走」的绝佳案例。 本期,知晓程序(微信号 zxcx0101)将 MINA 奖颁给了「摩拜单车」小程序,并对团队作了独家采访。现在,就让我们来感受一下摩拜单车的新能力吧。 微信扫码,就能骑走的「摩拜单车」 使用一部摩拜单车,需要几个步骤? 在 app 时代,你得下载、安装摩拜单车的客户端。 对于
在 Java 中,有一些替代方案可以用来实现 FTP 服务器功能,类似于 Python 中的 pyftpdlib。目前我们常用的就是三种替换方案,这里需要根据自己的项目需求选择合适的方法。
这里是「知晓程序 · MINA 奖」的第 4 期。 生活在别处。 当内心感到倦怠、迷惘的时候,很多人会选择去远方重新发现自己。 如何留住旅行的回忆呢?除了照片、日记之外,你是否有想过,记账也能成为一种纪念方式。 本期 MINA 奖,知晓程序(微信号 zxcx0101)颁发给了「旅行小账本」。这款别出心裁的小程序,让记账成为了一种零负担的美的享受。 还不知道如何使用小程序?点击这里,手把手教你用! 打开你的「旅行小账本」 「小旅行账本」提供了一种全新的记账体验。 在这里,你可以为每一次旅行,单独创建一个精美
在使用mina的过程中,我们通常会自定义各种报文,以使用于自己的业务。今天就为大家带来一款类似http协议的解码过程。 mina有自带的解析http数据包的解码类。可以使用maven配置一下内容获取源码:
领取专属 10元无门槛券
手把手带您无忧上云