1. 程式人生 > >11個Java 開源 socket框架

11個Java 開源 socket框架

Netty2作者的後續之作Apache MINACrmkyCindy之外,還有個超簡單的QuickServer,讓你專心編寫自己的業務程式碼,不用編寫一行TCP程式碼。

一、QuickServer 是一個免費的開源Java庫,用於快速建立健壯的多執行緒、多客戶端TCP伺服器應用程式。使用QuickServer,使用者可以只集中處理應用程式的邏輯/協議。

二、Netty 2提供了一組基於事件的API來開發高效能,可管理的TCP/IP服務端或客戶端應用程式.對於要求建立高效能的網路應用來說,Netty提供許多基本特性,像readiness selection,執行緒池,寫緩衝DoS的預防,

可重用的緩衝等

三、ColoradoFTP是一個開源完全遵循RFC 959(檔案傳輸協議)Java FTP伺服器。它具有快速,可靠,易於擴充套件的特點。

四、Apache James

完全採用純Java技術開發,實現了SMTPPOP3NNTP等多種郵件相關協議。James也是一個郵件應用平臺,可以通過Mailet擴充其功能,如Mail2SMSMail2Fax等。James提供了比較完善的配置方案,尤其是關於郵件內容儲存和使用者資訊儲存。

      支援SMTPPOP3協議純Java mail伺服器。

Java Sockets是一個Java類庫模仿了C++ Sockets library

的實現方式並基於SUNjava.nio.*非阻塞網路I/O類。

七、Raining Sockets是一個非阻塞的sockets框架.開發者可以利用它來構建高效能的可以傳送與接收10000 socket連線的應用程式

八、Cindy是基於java nio的,提供一個簡單,高效的非同步I/O框架,支援tcp/udp/pipe並易於測試

 九HP-Socket 

      HP-Socket 是一套通用的高效能 TCP/UDP 通訊框架,包含服務端元件、客戶端元件和Agent元件,廣泛適用於各種不同應用場景的TCP/UDP通訊系統,提供C/C++C#DelphiE(易語言)、JavaPython

等程式語言介面。HP-Socket對通訊層實現完全封裝,應用程式不必關注通訊層的任何細節;HP-Socket提供基於事件驅動模型的API介面,能非常簡單高效地整合到新舊應用程式中。

      HP-Socket 目前執行在 Windows 平臺,將來會實現跨平臺支援。

      Client 元件:基於 Event Select 通訊模型,在單獨執行緒中執行通訊操作,避免與主執行緒或其他執行緒相互干擾。每個元件物件管理一個Socket連線。

      Server 元件:基於 IOCP 通訊模型,並結合快取池、私有堆(Private Heap)等技術,支援超大規模連線,在高併發場景下實現高效記憶體管理。

      Agent 元件:對於代理伺服器或中轉伺服器等應用場景,伺服器自身也作為客戶端向其它伺服器發起大規模連線,一個 Agent元件物件同時可管理多個Socket連線;Agent元件與Server元件採用相同的技術架構,可以用作代理伺服器或中轉伺服器的客戶端部件。

Grizzl: 的設計與一般的 nio 框架相比是比較不同的,主要不同點在於讀和寫都是採用 blocking 方式,並且使用臨時 selector;執行緒模型高度可配置。效能據說比 MINA 還高,但是學習曲線很高。 

十一Xscocket: 是一個輕量級的解決方案,核心思想是遮蔽,簡化 nio 方式的的開發,並不需要過多的學習。

參考:http://blog.163.com/chen_scor/blog/static/178805061201062343944832/