1. 程式人生 > >Java網路程式設計框架

Java網路程式設計框架

 自從JDK1.4中有了NIO以後,這個方面越來越活躍,也為java贏得更多開發者的支援。做java網路程式設計需要掌握一些基本的知識和技能:套接字程式設計、阻塞/非阻塞通訊、建立HTTP伺服器與客戶程式、資料報通訊、物件的序列化與反序列化、Java反射機制、RMI框架、JDBC API、JavaMail API、MVC設計模式、安全網路通訊、CORBA和Web服務 等等。

筆者在此只整理以下一些主流框架:

  • MINA 為開發高效能和高可用性的網路應用程式提供了非常便利的框架;支援基於 Java NIO 技術的 TCP/UDP 應用程式開發、串列埠通訊程式
  • Grizzly 設計與一般的nio框架相比是比較不同的,主要不同點在於讀和寫都是採用blocking方式,並且使用臨時selector ;執行緒模型高度可配置,不過據作者介紹在跑一個selector主執行緒處理ACCEPT,用執行緒池處理read和write效能表現最好,這點不出意料。
  • Nettty 提供了一組基於事件的API來開發高效能, 可管理的TCP/IP服務端或客戶端應用程式. 對於要求建立高效能的網路應用來說,Netty提供許多基本特性,像readiness selection, 執行緒池, 寫緩衝DoS的預防, 可重用的緩衝等.
  • NIO Framework 搭建在Java NIO library之上,封裝了原始NIO的大部分複雜性。利用NIO Framework能夠很容易地開發安全,高效能的Java網路應用程式。
  • QuickServer 一個免費的開源Java庫,用於快速建立健壯的多執行緒、多客戶端TCP伺服器應用程式。使用QuickServer,使用者可以只集中處理應用程式的邏輯/ 協議。
  • xSocket 一個輕量級的基於nio的伺服器框架用於開發高效能、可擴充套件、多執行緒的伺服器。該框架封裝了執行緒處理、非同步讀/寫等方面。
  • ioServer 高效能,易擴充套件的網路框架,相對於Apache的MINA更加輕量級,原始碼更容易讀懂,原始碼中有大量詳細的中文註解,是一個非常不錯的學習框架,框架主要至力於解決中國市場上手機網遊的伺服器端程式的編寫。

    IoServer構建簡單伺服器例程(更詳細的例程可下載例程包,或進入Wiki檢視)伺服器接收一個來自客戶端的整型,並加一返回給客戶端

  • XNIO 一個幫助你簡化NIO應用程式開發的Java包;提供了一個獨特和易於使用的API,用於結合blocking和非blocking操作,即使是在同一個channel上,也可以允許你利用簡單和低延遲性的blocking I/O,同時還能獲得非blocking I/O的優勢;還引入了一個功能強大的基於回撥的介面,可以大大簡化基於traditional state machine的非blocking應用,並讓您的應用程式之間的吞吐量(throughput)和延時達到完美平衡。

另外中介軟體平臺ICE也可能被用到此場景中。

相關推薦

Java網路程式設計框架

 自從JDK1.4中有了NIO以後,這個方面越來越活躍,也為java贏得更多開發者的支援。做java網路程式設計需要掌握一些基本的知識和技能:套接字程式設計、阻塞/非阻塞通訊、建立HTTP伺服器與客戶程式、資料報通訊、物件的序列化與反序列化、Java反射機制、RMI框架、J

java網路程式設計_IO模型

理解java的BIO、NIO、AIO的原理: 一、UNIX程式設計中的五種IO模型: 1. 阻塞IO 外賣小哥去商家取外賣,到了麻辣燙店,商家還沒做好, 外賣小哥雖然還有其他單子要送,但是不得不焦急地等著商家; 2. 非阻塞IO 外賣小哥去商家取外賣

Java網路程式設計基礎部分

轉載:文章來源 網路通訊協議 網路通訊協議有很多種,目前應用最廣泛的是TCP/IP協議(Transmission Control Protocal/Internet Protoal傳輸控制協議/英特網互聯協議),它是一個包括TCP協議和IP協議,UDP(User Datagram Protoco

20180827-Java網路程式設計

  Java 網路程式設計 網路程式設計是指編寫執行在多個裝置(計算機)的程式,這些裝置都通過網路連線起來。 java.net包中J2SE的API包含有類和介面,它們提供低層次的通訊細節。你可以直接使用這些類和介面,來專注於解決問題,而不用關注通訊細節。 java.net包中提供了兩種常見的

Java網路程式設計的基本網路概念

  前言 自己網路這方面的知識很是薄弱,每次面試被問到這部分都會卡殼,所以很尷尬,然後最近也是有些時間了,就趕緊把自己的不足補充一下。雖然最近也在看設計模式,但是總看設計模式也容易煩,所以就並行學習,看看設計模式,然後再看看這網路程式設計。 網路 首先熟悉一下, 什麼是網路,網路是幾乎可以實

java網路程式設計中常用的類

java網路程式設計中常用的類 1、InetAddress 用於封裝計算機的IP地址和DNS(Domain Name System域名系統)(沒有埠資訊) InetAddress沒有構造器,要得到物件只能通過靜態方法實現 /** * 使用getLocalHost的方法建立InetA

java 網路程式設計——TCP 的三次握手和四次揮手

文章目錄 TCP報頭 三次握手 未連線佇列 四次揮手 狀態詳解 在TCP/IP協議中,TCP協議提供可靠的連線服務,採用三次握手建立一個連線. TCP報頭 埠號:用來標識

深入Java網路程式設計與NIO(二)

Java NIO 與 Netty NIO NIO的特性/NIO與IO區別: 1)IO是面向流的,NIO是面向緩衝區的; 2)IO流是阻塞的,NIO流是不阻塞的; 3)NIO有選擇器,而IO沒有。 讀資料和寫資料方式: 從通道進行資料讀取 :建立一個緩衝區,然後請求通道讀取資料。

Java學習---Java網路程式設計

Java 網路程式設計 網路程式設計是指編寫執行在多個裝置(計算機)的程式,這些裝置都通過網路連線起來。 java.net 包中 J2SE 的 API 包含有類和介面,它們提供低層次的通訊細節。你可以直接使用這些類和介面,來專注於解決問題,而不用關注通訊細節。 java.net

201711671223《Java程式設計》第十二週學習總結13章Java網路程式設計

201711671223《Java程式設計》第十二周學習總結13章Java網路程式設計 URL類(Uniform Resource Locator)是java.net包中的一個重要的類,URL的例項封裝著一個統一資源定位符,使用URL建立物件的應用程式稱作客戶端程式。 一個URL物件通常包含最基

Java - 30 Java 網路程式設計

Java 網路程式設計 網路程式設計是指編寫執行在多個裝置(計算機)的程式,這些裝置都通過網路連線起來。 java.net包中J2SE的API包含有類和介面,它們提供低層次的通訊細節。你可以直接使用這些類和介面,來專注於解決問題,而不用關注通訊細節。 java.net包中提供了兩種常見的網路協議的支援:

java網路程式設計實現登陸

功能描述: 客戶端 輸入使用者名稱密碼,併發送給伺服器,伺服器端接受資訊並進行驗證字後,返回客戶端成功或者失敗。 客戶端程式碼 import java.io.BufferedReader; import java.io.IOException; import jav

java網路程式設計基礎

1.netstat -ano    檢視當前計算機所有協議的通訊狀態,包括協議名,當前計算機地址,其他計算機的地址,狀態:PID 2.netstat -ano | findstr 埠號    檢視對應的埠號是否被佔用,如果沒有佔用,沒有訊息輸出,如果有訊息輸出,代表該埠被佔用

Java網路程式設計,socket實現一對一全雙工通訊聊天功能

本文使用socket的長連線,進行訊息的傳送和接受。 1、兩端 client 端,server端 2、兩執行緒 客戶端、伺服器端,各開兩個執行緒,實現讀寫,可以全雙工通訊,非同步傳送,非同步接受。 3、兩注意 程式等待輸入和一直處於等待訊息發來,所以,用到死迴圈。

java網路程式設計(2)URLDecoder和URLEncoder

一下為程式碼示例,具體的講解穿插在程式碼中 import java.net.URLDecoder; import java.net.URLEncoder; public class URLDecoderTest { public static void mai

java網路程式設計(3)TCP

使用TCP進行網路資料傳輸的時候,TCP會在需要傳輸資料的兩端建立兩個Socket(插座),並且在兩個Socket之間建立一條虛擬鏈路,然後這兩臺主機就可以進行通訊了。 下面是一個很簡單的例子。 Server類建立一個ServerSocket物件,用於監聽客戶端Socke

Java網路程式設計2.UDP網路程式設計

UDP網路程式設計 1、UDP協議傳送資料 (1)UDP協議傳送資料的步驟: UDP協議傳送資料 A: 建立傳送端Socket物件 B: 建立資料,並把資料打包 C: 呼叫Socke

Java網路程式設計4.UDP網路程式設計之多執行緒優化

UDP網路程式設計之多執行緒優化——DatagramSocket類 1、UDP網路程式設計之多執行緒優化的思想 (1)一個執行緒實現客戶端——傳送資料 (2)一個執行緒實現伺服器端——接收資料

Java網路程式設計7.TCP網路程式設計之客戶端鍵盤錄入伺服器控制檯輸出

TCP網路程式設計之客戶端鍵盤錄入伺服器控制檯輸出 1、鍵盤錄入資料 BufferedReader br = new BufferedReader(new InputStreamReader(S

Java網路程式設計基礎篇

一、前言 網路通訊在系統互動中是必不可少的一部分,無論是面試還是工作中都是繞不過去的一部分,本節我們來談談Java網路程式設計中的一些知識,本chat內容如下: 網路通訊基礎知識,剖析網路通訊的本質和需要注意的點 使用Java BIO阻塞套接字 實現簡單TCP