勇敢的芯伴你玩轉(zhuǎn)NIOSII 完整pdf掃描版[91MB]
91.2MB / 02-20
Netty源碼剖析&NIO+Netty5各種RPC架構(gòu)實(shí)戰(zhàn)演練 三部曲視頻教
5.77GB / 12-17
Java NIO在并發(fā)型服務(wù)器設(shè)計(jì)中的應(yīng)用 中文PDF版
207KB / 11-08
JavaScript Examples Bible: The Essential Companion to JavaSc
3MB / 08-26
-
-
機(jī)器學(xué)習(xí)、深度學(xué)習(xí)面試筆試題300+合集 中文pdf完整版 編程其它 / 5.9MB
-
華為全套設(shè)計(jì)規(guī)范文檔 (C語(yǔ)言/硬件/模電) 中文pdf完整版 編程其它 / 31.3MB
-
-
Arduino編程參考手冊(cè) 中文版PDF 編程其它 / 80KB
-
CODESYS基礎(chǔ)編程及應(yīng)用指南 中文pdf完整版 編程其它 / 10.6MB
-
Tcl教程中文版+入門(mén)教程 完整版PDF 編程其它 / 2.12MB
-
圖解算法小抄(筆記) 中文PDF完整版 編程其它 / 6.1MB
-
QNX官方開(kāi)發(fā)手冊(cè)(中英文版) 完整版pdf 編程其它 / 6.32MB
-
詳情介紹
本書(shū)主要介紹Java語(yǔ)言中高性能處理的原理技術(shù):NIO和Socket。非常詳細(xì)地講解了NIO中的緩沖區(qū)、通道、選擇器、編碼,以及使用Socket技術(shù)實(shí)現(xiàn)TCP/IP和UDP編程,細(xì)化到了演示全部SocketOption的特性,這對(duì)理解基于NIO和Socket技術(shù)為基礎(chǔ)所開(kāi)發(fā)的NIO框架是非常有好處的,本書(shū)以案例為入口,將大部分在開(kāi)發(fā)中常見(jiàn)的NIO和Socket的技術(shù)點(diǎn)都做了演示,細(xì)化到API級(jí)。在互聯(lián)網(wǎng)技術(shù)日新月異的時(shí)代,Netty以及Kafka等這些高性能處理框架都在底層應(yīng)用到了NIO和Socket,所以當(dāng)你目前是有計(jì)劃進(jìn)軍互聯(lián)網(wǎng)技術(shù)時(shí),本書(shū)也許會(huì)帶給你一個(gè)方向。
目錄
目 錄?Contents
前 言
第1章緩沖區(qū)的使用 1
1.1NIO概述 5
1.2緩沖區(qū)介紹 6
1.3Buffer類(lèi)的使用 7
1.3.1包裝數(shù)據(jù)與獲得容量 7
1.3.2限制獲取與設(shè)置 10
1.3.3位置獲取與設(shè)置 12
1.3.4剩余空間大小獲取 13
1.3.5使用Buffer mark()方法處理標(biāo)記 14
1.3.6知識(shí)點(diǎn)細(xì)化測(cè)試 15
1.3.7判斷只讀 22
1.3.8直接緩沖區(qū) 22
1.3.9還原緩沖區(qū)的狀態(tài) 23
1.3.10對(duì)緩沖區(qū)進(jìn)行反轉(zhuǎn) 24
1.3.11判斷是否有底層實(shí)現(xiàn)的數(shù)組 28
1.3.12判斷當(dāng)前位置與限制之間是否有剩余元素 29
1.3.13重繞緩沖區(qū) 30
1.3.14獲得偏移量 32
1.3.15使用List.toArray(T[])轉(zhuǎn)成數(shù)組類(lèi)型 33
1.4ByteBuffer類(lèi)的使用 34
1.4.1創(chuàng)建堆緩沖區(qū)與直接緩沖區(qū) 35
1.4.2直接緩沖區(qū)與非直接緩沖區(qū)的運(yùn)行效率比較 37
1.4.3包裝wrap數(shù)據(jù)的處理 39
1.4.4put(byte b)和get()方法的使用與position自增特性 40
1.4.5put(byte[] src, int offset, int length)和get(byte[] dst, int offset, int length)方法的使用 41
1.4.6put(byte[] src)和get(byte[] dst)方法的使用 46
1.4.7put(int index, byte b)和get(int index)方法的使用與position不變 49
1.4.8put(ByteBuffer src)方法的使用 50
1.4.9putType()和getType()方法的使用 51
1.4.10slice()方法的使用與arrayOffSet()為非0的測(cè)試 53
1.4.11轉(zhuǎn)換為CharBuffer字符緩沖區(qū)及中文的處理 54
1.4.12轉(zhuǎn)換為其他類(lèi)型的緩沖區(qū) 58
1.4.13設(shè)置與獲得字節(jié)順序 63
1.4.14創(chuàng)建只讀緩沖區(qū) 65
1.4.15壓縮緩沖區(qū) 65
1.4.16比較緩沖區(qū)的內(nèi)容 66
1.4.17復(fù)制緩沖區(qū) 70
1.4.18對(duì)緩沖區(qū)進(jìn)行擴(kuò)容 72
1.5CharBuffer類(lèi)的API使用 73
1.5.1重載append(char)/append(Char-Sequence)/append(CharSequence, start, end)方法的使用 73
1.5.2讀取相對(duì)于當(dāng)前位置的給定索引處的字符 74
1.5.3put(String src)、int read(CharBuffer target)和subSequence(int start, int end)方法的使用 74
1.5.4static CharBuffer wrap(Char-Sequence csq, int start, int end)方法的使用 76
1.5.5獲得字符緩沖區(qū)的長(zhǎng)度 76
1.6小結(jié) 77
第2章通道和FileChannel類(lèi)的使用 78
2.1通道概述 78
2.2通道接口的層次結(jié)構(gòu) 80
2.2.1AsynchronousChannel接口的介紹 82
2.2.2AsynchronousByteChannel接口的介紹 84
2.2.3ReadableByteChannel接口的介紹 84
2.2.4ScatteringByteChannel接口的介紹 85
2.2.5WritableByteChannel接口的介紹 86
2.2.6GatheringByteChannel接口的介紹 87
2.2.7ByteChannel接口的介紹 88
2.2.8SeekableByteChannel接口的介紹 89
2.2.9NetworkChannel接口的介紹 90
2.2.10MulticastChannel接口的介紹 91
2.2.11InterruptibleChannel接口的介紹 92
2.3AbstractInterruptibleChannel類(lèi)的介紹 93
2.4FileChannel類(lèi)的使用 95
2.4.1寫(xiě)操作與位置的使用 97
2.4.2讀操作 100
2.4.3批量寫(xiě)操作 106
2.4.4批量讀操作 109
2.4.5部分批量寫(xiě)操作 117
2.4.6部分批量讀操作 120
2.4.7向通道的指定position位置寫(xiě)入數(shù)據(jù) 128
2.4.8讀取通道指定位置的數(shù)據(jù) 130
2.4.9設(shè)置位置與獲得大小 135
2.4.10截?cái)嗑彌_區(qū) 136
2.4.11將數(shù)據(jù)傳輸?shù)狡渌蓪?xiě)入字節(jié)通道 138
2.4.12將字節(jié)從給定可讀取字節(jié)通道傳輸?shù)酱送ǖ赖奈募?141
2.4.13執(zhí)行鎖定操作 145
2.4.14FileLock lock()方法的使用 160
2.4.15獲取通道文件給定區(qū)域的鎖定 160
2.4.16FileLock tryLock()方法的使用 162
2.4.17FileLock類(lèi)的使用 162
2.4.18強(qiáng)制將所有對(duì)通道文件的更新寫(xiě)入包含文件的存儲(chǔ)設(shè)備 165
2.4.19將通道文件區(qū)域直接映射到內(nèi)存 167
2.4.20打開(kāi)一個(gè)文件 174
2.4.21判斷當(dāng)前通道是否打開(kāi) 181
2.5小結(jié) 182
第3章獲取網(wǎng)絡(luò)設(shè)備信息 183
3.1NetworkInterface類(lèi)的常用方法 184
3.1.1獲得網(wǎng)絡(luò)接口的基本信息 186
3.1.2獲取MTU大小 189
3.1.3子接口的處理 190
3.1.4獲得硬件地址 192
3.1.5獲得IP地址 194
3.1.6InterfaceAddress類(lèi)的使用 200
3.1.7判斷是否為點(diǎn)對(duì)點(diǎn)設(shè)備 202
3.1.8是否支持多播 202
3.2NetworkInterface類(lèi)的靜態(tài)方法 204
3.2.1根據(jù)索引獲得NetworkInterface對(duì)象 204
3.2.2根據(jù)網(wǎng)絡(luò)接口名稱(chēng)獲得NetworkInterface對(duì)象 204
3.2.3根據(jù)IP地址獲得NetworkInterface對(duì)象 205
3.3小結(jié) 205
第4章實(shí)現(xiàn)Socket通信 206
4.1基于TCP的Socket通信 206
4.1.1驗(yàn)證ServerSocket類(lèi)的accept()方法具有阻塞特性 207
4.1.2驗(yàn)證Socket中InputStream類(lèi)的read()方法也具有阻塞特性 210
4.1.3客戶(hù)端向服務(wù)端傳遞字符串 212
4.1.4服務(wù)端向客戶(hù)端傳遞字符串 213
4.1.5允許多次調(diào)用write()方法進(jìn)行寫(xiě)入操作 215
4.1.6實(shí)現(xiàn)服務(wù)端與客戶(hù)端多次的往來(lái)通信 216
4.1.7調(diào)用Stream的close()方法造成Socket關(guān)閉 219
4.1.8使用Socket傳遞PNG圖片文件 221
4.1.9TCP連接的3次“握手”過(guò)程 222
4.1.10標(biāo)志位SYN與ACK值的自增特性 225
4.1.11TCP斷開(kāi)連接的4次“揮手”過(guò)程 226
4.1.12“握手”的時(shí)機(jī)與立即傳數(shù)據(jù)的特性 227
4.1.13結(jié)合多線(xiàn)程Thread實(shí)現(xiàn)通信 228
4.1.14服務(wù)端與客戶(hù)端互傳對(duì)象以及I/O流順序問(wèn)題 231
4.2ServerSocket類(lèi)的使用 233
4.2.1接受accept與超時(shí)Timeout 233
4.2.2構(gòu)造方法的backlog參數(shù)含義 235
4.2.3參數(shù)backlog的默認(rèn)值 237
4.2.4構(gòu)造方法ServerSocket (int port, int backlog, InetAddress bindAddr)的使用 238
4.2.5綁定到指定的Socket地址 240
4.2.6綁定到指定的Socket地址并設(shè)置backlog數(shù)量 242
4.2.7獲取本地SocketAdress對(duì)象以及本地端口 243
4.2.8InetSocketAddress類(lèi)的使用 244
4.2.9關(guān)閉與獲取關(guān)閉狀態(tài) 247
4.2.10判斷Socket綁定狀態(tài) 248
4.2.11獲得IP地址信息 249
4.2.12Socket選項(xiàng)ReuseAddress 249
4.2.13Socket選項(xiàng)ReceiveBuffer-
Size 257
4.3Socket類(lèi)的使用 259
4.3.1綁定bind與connect以及端口生成的時(shí)機(jī) 259
4.3.2連接與超時(shí) 261
4.3.3獲得遠(yuǎn)程端口與本地端口 262
4.3.4獲得本地InetAddress地址與本地SocketAddress地址 263
4.3.5獲得遠(yuǎn)程InetAddress與遠(yuǎn)程SocketAddress()地址 264
4.3.6套接字狀態(tài)的判斷 265
4.3.7開(kāi)啟半讀與半寫(xiě)狀態(tài) 266
4.3.8判斷半讀半寫(xiě)狀態(tài) 268
4.3.9Socket選項(xiàng)TcpNoDelay 270
4.3.10Socket選項(xiàng)SendBufferSize 274
4.3.11Socket選項(xiàng)Linger 276
4.3.12Socket選項(xiàng)Timeout 287
4.3.13Socket選項(xiàng)OOBInline 288
4.3.14Socket選項(xiàng)KeepAlive 291
4.3.15Socket選項(xiàng)TrafficClass 293
4.4基于UDP的Socket通信 294
4.4.1使用UDP實(shí)現(xiàn)Socket通信 295
4.4.2測(cè)試發(fā)送超大數(shù)據(jù)量的包導(dǎo)致數(shù)據(jù)截?cái)嗟那闆r 297
4.4.3Datagram Packet類(lèi)中常用API的使用 299
4.4.4使用UDP實(shí)現(xiàn)單播 300
4.4.5使用UDP實(shí)現(xiàn)廣播 301
4.4.6使用UDP實(shí)現(xiàn)組播 303
4.5小結(jié) 305
第5章選擇器的使用 306
5.1選擇器與I/O多路復(fù)用 306
5.2核心類(lèi)Selector、SelectionKey和
SelectableChannel的關(guān)系 307
5.3通道類(lèi)AbstractInterruptibleChannel與接口InterruptibleChannel的介紹 310
5.4通道類(lèi)SelectableChannel的介紹 311
5.5通道類(lèi)AbstractSelectableChannel的介紹 313
5.6通道類(lèi)ServerSocketChannel與接口NetworkChannel的介紹 313
5.7ServerSocketChannel類(lèi)、Selector和SelectionKey的使用 315
5.7.1獲得ServerSocketChannel與ServerSocket socket對(duì)象 316
5.7.2執(zhí)行綁定操作 317
5.7.3執(zhí)行綁定操作與設(shè)置backlog 317
5.7.4阻塞與非阻塞以及accept()方法的使用效果 318
5.7.5獲得Selector對(duì)象 320
5.7.6執(zhí)行注冊(cè)操作與獲得SelectionKey對(duì)象 321
5.7.7判斷注冊(cè)的狀態(tài) 322
5.7.8將通道設(shè)置成非阻塞模式再注冊(cè)到選擇器 323
5.7.9使用configureBlocking (false)方法解決異常 323
5.7.10判斷打開(kāi)的狀態(tài) 324
5.7.11獲得阻塞鎖對(duì)象 325
5.7.12獲得支持的SocketOption列表 325
5.7.13獲得與設(shè)置SocketOption 327
5.7.14獲得SocketAddress對(duì)象 327
5.7.15阻塞模式的判斷 328
5.7.16根據(jù)Selector找到對(duì)應(yīng)的SelectionKey 328
5.7.17獲得SelectorProvider對(duì)象 329
5.7.18通道注冊(cè)與選擇器 330
5.7.19返回此通道所支持的操作 332
5.7.20執(zhí)行Connect連接操作 333
5.7.21判斷此通道上是否正在進(jìn)行連接操作 336
5.7.22完成套接字通道的連接過(guò)程 338
5.7.23類(lèi)FileChannel中的long tran-sferTo (position, count, Writable-ByteChannel)方法的使用 340
5.7.24方法public static SocketChannel open (SocketAddress remote)與SocketOption的執(zhí)行順序 342
5.7.25傳輸大文件 344
5.7.26驗(yàn)證read和write方法是非阻塞的 346
5.8Selector類(lèi)的使用 348
5.8.1驗(yàn)證public abstract int select()方法具有阻塞性 350
5.8.2select()方法不阻塞的原因和解決辦法 351
5.8.3出現(xiàn)重復(fù)消費(fèi)的情況 353
5.8.4使用remove()方法解決重復(fù)消費(fèi)問(wèn)題 355
5.8.5驗(yàn)證產(chǎn)生的set1和set2關(guān)聯(lián)的各自對(duì)象一直是同一個(gè) 356
5.8.6int selector.select()方法返回值的含義 360
5.8.7從已就緒的鍵集中獲得通道中的數(shù)據(jù) 362
5.8.8對(duì)相同的通道注冊(cè)不同的相關(guān)事件返回同一個(gè)SelectionKey 363
5.8.9判斷選擇器是否為打開(kāi)狀態(tài) 365
5.8.10獲得SelectorProvider provider對(duì)象 365
5.8.11返回此選擇器的鍵集 366
5.8.12public abstract int select(long timeout)方法的使用 367
5.8.13public abstract int selectNow()方法的使用 368
5.8.14喚醒操作 369
5.8.15測(cè)試若干細(xì)節(jié) 370
5.9SelectionKey類(lèi)的使用 380
5.9.1判斷是否允許連接SelectableChannel對(duì)象 381
5.9.2判斷是否已準(zhǔn)備好進(jìn)行讀取 383
5.9.3判斷是否已準(zhǔn)備好進(jìn)行寫(xiě)入 384
5.9.4返回SelectionKey關(guān)聯(lián)的選擇器 386
5.9.5在注冊(cè)操作時(shí)傳入attachment附件 387
5.9.6設(shè)置attachment附件 389
5.9.7獲取與設(shè)置此鍵的interest集合 390
5.9.8判斷此鍵是否有效 392
5.9.9獲取此鍵的ready操作集合 392
5.9.10取消操作 395
5.10DatagramChannel類(lèi)的使用 396
5.10.1使用DatagramChannel類(lèi)實(shí)現(xiàn)UDP通信 398
5.10.2連接操作 399
5.10.3斷開(kāi)連接 400
5.10.4將通道加入組播地址 400
5.10.5將通道加入組播地址且接收指定客戶(hù)端數(shù)據(jù) 402
5.11Pipe.SinkChannel和Pipe.SourceChannel類(lèi)的使用 403
5.12SelectorProvider類(lèi)的使用 406
5.13小結(jié) 407
第6章AIO的使用 408
6.1AsynchronousFileChannel類(lèi)的使用 408
6.1.1獲取此通道文件的獨(dú)占鎖 409
6.1.2獲取通道文件給定區(qū)域的鎖 410
6.1.3實(shí)現(xiàn)重疊鎖定 412
6.1.4返回此通道文件當(dāng)前大小與通道打開(kāi)狀態(tài) 413
6.1.5CompletionHandler接口的使用 413
6.1.6public void failed (Throwable exc, A attachment)方法調(diào)用時(shí)機(jī) 414
6.1.7執(zhí)行指定范圍的鎖定與傳入附件及整合接口 415
6.1.8執(zhí)行鎖定與傳入附件及整合接口CompletionHandler 416
6.1.9lock (position, size, shared, attachment,CompletionHandler)方法的特點(diǎn) 418
6.1.10讀取數(shù)據(jù)方式1 420
6.1.11讀取數(shù)據(jù)方式2 420
6.1.12寫(xiě)入數(shù)據(jù)方式1 421
6.1.13寫(xiě)入數(shù)據(jù)方式2 422
6.2AsynchronousServerSocketChannel和AsynchronousSocketChannel類(lèi)的使用 422
6.2.1接受方式1 425
6.2.2接受方式2 427
6.2.3重復(fù)讀與重復(fù)寫(xiě)出現(xiàn)異常 428
6.2.4讀數(shù)據(jù) 429
6.2.5寫(xiě)數(shù)據(jù) 433
6.3同步、異步、阻塞與非阻塞之間的關(guān)系 436
6.4小結(jié) 437
下載地址
人氣書(shū)籍
微信公眾平臺(tái)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn) PDF掃描版
Arduino編程參考手冊(cè) 中文版PDF
設(shè)計(jì)模式:可復(fù)用面向?qū)ο筌浖幕A(chǔ) PDF 掃描版[21M]
啊哈!算法 PDF掃描版[73MB]
proe5.0 入門(mén)教程pdf版
算法圖解 (袁國(guó)忠著) 中文pdf完整版[17MB]
Unity3D游戲開(kāi)發(fā) 宣雨松著 PDF掃描版[27MB]
R語(yǔ)言實(shí)戰(zhàn)(第2版) ([美]卡巴科弗) 中文pdf完整版[19MB]
unity3d從入門(mén)到精通中文教程 高清PDF完整版[11MB]
編程之美PDF全集
下載聲明
☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
☉ 如果這個(gè)軟件總是不能下載的請(qǐng)?jiān)谠u(píng)論中留言,我們會(huì)盡快修復(fù),謝謝!
☉ 下載本站資源,如果服務(wù)器暫不能下載請(qǐng)過(guò)一段時(shí)間重試!或者多試試幾個(gè)下載地址
☉ 如果遇到什么問(wèn)題,請(qǐng)?jiān)u論留言,我們定會(huì)解決問(wèn)題,謝謝大家支持!
☉ 本站提供的一些商業(yè)軟件是供學(xué)習(xí)研究之用,如用于商業(yè)用途,請(qǐng)購(gòu)買(mǎi)正版。
☉ 本站提供的NIO與Socket編程技術(shù)指南 中文pdf掃描版[214MB] 資源來(lái)源互聯(lián)網(wǎng),版權(quán)歸該下載資源的合法擁有者所有。