11个Java 开源 socket框架,来了解下吧!

共 1888字,需浏览 4分钟

 ·

2021-10-20 11:42

点击上方蓝色字体,选择“标星公众号”

优质文章,第一时间送达


ZeroC ICE的Java版,Netty2作者的后续之作Apache MINA,Crmky的Cindy之外,还有个超简单的QuickServer,让你专心编写自己的业务代码,不用编写一行TCP代码。

1、QuickServer

官网:http://www.quickserver.org/

一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议。

2、Netty 2

提供了一组基于事件的API来开发高性能,可管理的TCP/IP服务端或客户端应用程序.对于要求建立高性能的网络应用来说,Netty提供许多基本特性,像readiness selection,线程池,写缓冲DoS的预防,可重用的缓冲等。

3、ColoradoFTP

一个开源完全遵循RFC 959(文件传输协议)的Java FTP服务器。它具有快速,可靠,易于扩展的特点。

4、Apache James

完全采用纯Java技术开发,实现了SMTP、POP3与NNTP等多种邮件相关协议。James也是一个邮件应用平台,可以通过Mailet扩充其功能,如Mail2SMS、Mail2Fax等。James提供了比较完善的配置方案,尤其是关于邮件内容存储和用户信息存储。

5、Java Email Server(JES)

支持SMTP和POP3协议纯Java mail服务器。

6、Java Sockets

Java Sockets是一个Java类库模仿了C++ Sockets library的实现方式并基于SUN的java.nio.*非阻塞网络I/O类。

7、Raining Sockets

一个非阻塞的sockets框架.开发者可以利用它来构建高性能的可以发送与接收10000 socket连接的应用程序。

8、Cindy

基于java nio的,提供一个简单,高效的异步I/O框架,支持tcp/udp/pipe并易于测试。

9、HP-Socket

  • HP-Socket:

    是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP通信系统,提供C/C++、C#、Delphi、E(易语言)、Java、Python等编程语言接口。HP-Socket对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket提供基于事件驱动模型的API接口,能非常简单高效地整合到新旧应用程序中。

    HP-Socket 目前运行在 Windows 平台,将来会实现跨平台支持。

  • Client 组件:

    基于 Event Select 通信模型,在单独线程中执行通信操作,避免与主线程或其他线程相互干扰。每个组件对象管理一个Socket连接。

  • Server 组件:

    基于 IOCP 通信模型,并结合缓存池、私有堆(Private Heap)等技术,支持超大规模连接,在高并发场景下实现高效内存管理。

  • Agent 组件:

    对于代理服务器或中转服务器等应用场景,服务器自身也作为客户端向其它服务器发起大规模连接,一个 Agent组件对象同时可管理多个Socket连接;Agent组件与Server组件采用相同的技术架构,可以用作代理服务器或中转服务器的客户端部件。

10、Grizzl

设计与一般的 nio 框架相比是比较不同的,主要不同点在于读和写都是采用 blocking 方式,并且使用临时 selector;线程模型高度可配置。性能据说比 MINA 还高,但是学习曲线很高。

11、xSocket

官网:http://xsocket.sourceforge.net/

一个轻量级的解决方案,核心思想是屏蔽,简化 nio 方式的的开发,并不需要过多的学习。


  作者 |  猎人在吃肉

来源 |  csdn.net/xiaojin21cen/article/details/78587425


加锋哥微信: java3459  
围观锋哥朋友圈,每天推送Java干货!

浏览 46
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报