Java NIO 經典例項程式碼
- SelectionKey.OP_ACCEPT —— 接收連線繼續事件,表示伺服器監聽到了客戶連線,伺服器可以接收這個連線了
- SelectionKey.OP_CONNECT —— 連線就緒事件,表示客戶與伺服器的連線已經建立成功
- SelectionKey.OP_READ —— 讀就緒事件,表示通道中已經有了可讀的資料,可以執行讀操作了(通道目前有資料,可以進行讀操作了)
- SelectionKey.OP_WRITE —— 寫就緒事件,表示已經可以向通道寫資料了(通道目前可以用於寫操作)
這裡 注意,下面兩種,SelectionKey.OP_READ ,SelectionKey.OP_WRITE ,
1.當向通道中註冊SelectionKey.OP_READ事件後,如果客戶端有向快取中write資料,下次輪詢時,則會 isReadable()=true;
2.當向通道中註冊SelectionKey.OP_WRITE事件後,這時你會發現當前輪詢執行緒中isWritable()一直為ture,如果不設定為其他事件
相關推薦
Java NIO 經典例項程式碼
SelectionKey.OP_ACCEPT —— 接收連線繼續事件,表示伺服器監聽到了客戶連線,伺服器可以接收這個連線了SelectionKey.OP_CONNECT —— 連線就緒事件,表示客戶與伺服器的連線已經建立成功SelectionKey.OP_READ —— 讀就緒事件,表示通道中已經有了可讀的
java NIO selector例項
基礎父類 需要進行selector nio程式設計的朋友,可以直接繼承AbstractSelectorChannel 使用。 ByteBufferUtil在另一篇部落格中有原始碼 import java.io.IOException; import java.ni
java反射經典例項
public Object getProperty(Object owner, String fieldName) throws Exception { Class ownerClass = owner.getClass();
Java NIO簡單例項(入門)
最近學習了一下Java NIO的開發,剛開始接觸selector,覺得有點繞,弄的有點暈,所以在這裡寫幾個簡單的例子,記錄一下,也與大家分享一下,對剛開始學習NIO的同學,希望有一些幫忙。大神就請多指點了。 開發穩定NIO對工程師的要求很高,NIO本身也
JAVA NIO入門例項
基本概念:參考http://zhangshixi.iteye.com/blog/679959作者的系列文章即可 NIO因為其高效性,成為了服務端的首選,大大提高了服務端的響應效率。 我自己讀完作者的文章,寫了一個簡單的DEMO 服務端: package com.liuc.i
Java NIO程式設計例項之三Selector
Java NIO主要包含三個概念,即緩衝區(Buffer)、通道(Channel)和選擇器(Selector)。前面的文章已經介紹了緩衝區和通道,本文則講述最複雜的選擇器Selector。 本文是本系列的第三篇文章,關於緩衝區Buffer可以看第一篇: ht
java生成Excel例項程式碼
工具類程式碼PoiExcelExport如下: package com.myssm.util.poi; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; i
Java IO 程式設計(BIO、NIO、AIO完整例項程式碼)
本文會從傳統的BIO到NIO再到AIO自淺至深介紹,並附上程式碼講解。 原始碼地址: https://github.com/kkman2008/java-IO.git 下面程式碼中會使用這樣一個
Java 網路IO程式設計總結(BIO、NIO、AIO均含完整例項程式碼)
第一段內容轉載自:http://blog.51cto.com/stevex/1284437 先來個例子理解一下概念,以銀行取款為例: 同步 : 自己親自出馬持銀行卡到銀行取錢(使用同步IO時,Java自己處理IO讀寫)。 非同步
Java網路程式設計-Nio 例項程式碼
一、基於Nio的 Server ,過程略複雜,但是無疑這樣的效率高;程式碼中得註釋比較詳細,請看註釋說明 package com.zhuoxuan.net.nio; import java.io.IOException; import java.net.InetSo
Java RMI特性及例項程式碼
RMI (Remote Method Invocation) 1,RMI 採用stubs 和 skeletons 來進行遠端物件(remote object)的通訊。stub 充當遠端物件的客戶端代理,有著和遠端物件相同的遠端介面,遠端物件的呼叫實際是通過呼叫該物件的客戶端代理物件stub來
java實現自定義異常例項程式碼
此處主要便於對異常類的使用上方便大家理解以一個公約數為例做了一個簡單自定義異常的處理程式碼如下: 如果操作者輸入數字符合要求程式執行,不符合則丟擲錯誤。 package 自定義異常簡單例項; import java.util.Scanner; public class CommonDivisor
Java NIO使用Files類一行程式碼讀取檔案內容
Files類 Files 類是 java.nio 包中的用於操作檔案的類,提供了比 java.io.File 類更便捷的操作。 其中,Files類的 readAllBytes 方法提供了一個讀取所有位元組的方法,可以將讀取結果很方便地賦值給一個 String。 例如以下程式碼,可以用一行程式碼實
JAVA之FileNameFilter兩種實現例項程式碼
0 引言 在學習流和檔案時發現檔案的過濾器只寫出了一種實現方式,即匿名類的實現。也可以通過實現FileNameFilter介面的方式完成過濾,特此以作記錄。 1 例項程式碼 1.1 匿名類的實現 package com.dh.ch08;/* @author c
java socket網路程式設計例項程式碼(含服務端和客戶端)
本程式碼為java socket網路程式設計例項程式碼,包括客戶端和服務端,實現客戶端傳送訊息,服務端接收並反饋訊息。 server.java為服務端程式碼。 client.java為客戶端程式碼。 服務端程式碼server.java: package socket;
java計劃任務排程框架quartz結合spring實現排程的配置例項程式碼分享
一:quartz簡介 OpenSymphony 的Quartz提供了一個比較完美的任務排程解決方案。 Quartz 是個開源的作業排程框架,定時排程器,為在 Java 應用程式中進行作業排程提供了簡單卻強大的機制。 Quartz中有兩個基本概
Java多型的經典例項分析
目錄 一、多型的表現形式 兩種 1.方法的過載和重寫 2.物件的多型性(向上轉型和向下轉型) 二、過載和重寫的簡單介紹 1.過載(overload) 1)在同一個類中 2)有兩個或
JAVA多型經典例項
public class A { public String show(D obj) { return ("A and D"); } public St
JAVA NIO工作原理及程式碼示例
簡介:本文主要介紹了JAVA NIO中的Buffer, Channel, Selector的工作原理以及使用它們的若干注意事項,最後是利用它們實現伺服器和客戶端通訊的程式碼例項。 歡迎探討,如有錯誤敬請指正 1. ByteBuffer 1.1直接緩衝區和非直接緩衝區 下面是建立ByteBuffer物件的
[四] java虛擬機器JVM編譯器編譯程式碼簡介 位元組碼指令例項 程式碼到底編譯成了什麼形式
public static void main(String[] args) { boolean bNum = true; char cNum = 2; byte byteNum = 127; short sNum = 32767; int iNum = 100; long lNum =