国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Netty開篇——NIO章下(五)

這篇具有很好參考價值的文章主要介紹了Netty開篇——NIO章下(五)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

SelectionKey

  1. 表示 Selector 和網(wǎng)絡通道的注冊關(guān)系,共四種(全是常量):
    • Int?OP_ACCEPT:有新的網(wǎng)絡連接可以接受,值為 16?(1 << 4)
    • Int?OP_CONNECT: 代表連接已經(jīng)建立,值為 8?(1 << 3)
    • Int?OP_READ:代表讀操作,值為 1?(1 << 0)
    • Int?OP_WRITE: 代表寫操作,值為 4??(1 << 2)

  2. 相關(guān)方法:
public abstract Selector selector();//得到與之關(guān)聯(lián)的Selector對象
public abstract SelectableChannel channel();//得到與之關(guān)聯(lián)的通道
public final Object attachment();//得到與之關(guān)聯(lián)的共享數(shù)據(jù)
public abstract SelectionKey interestOps(int ops);//設置或改變監(jiān)聽事件
public final boolean isAcceptable();//是否可以 accept 
public final boolean isReadable();//是否可以讀
public final boolean isWritable();//是否可以寫

?Netty開篇——NIO章下(五),Netty,nio,java

ServerSocketChannel

  1. ServerSocketChannel 在服務器端監(jiān)聽新的客戶端 Socket 連接
  2. 相關(guān)方法:
  • public static ServerSocketChannel open(),得到一個ServerSocketChannel通道
  • publle final ServerSocketChannel bind(SocketAddress local),設置服務器端端口 號
  • publle final SelectableChannel configureBlocking(boolean block), 設置阻塞或非 阻塞模式,取值false表示采用非阻塞模式
  • publlc SocketChannel accept(),接受一個連接,返回代表這個連接的通道對象
  • public final SelectionKey register(Selectorsel,int ops), 注冊一個選擇器并設置 監(jiān)聽事件

?Netty開篇——NIO章下(五),Netty,nio,java

SocketChannel?

  1. SocketChannel,網(wǎng)絡IO通道,具體負責進行讀寫操作。NIO 把緩沖區(qū)的數(shù)據(jù)寫入通道,或者把通道里的數(shù)據(jù)讀到緩沖區(qū)。
  2. 相關(guān)方法:
  • public static SocketChannel open():/得到一個SocketChannel通道
  • public final SelectableChannel configureBlocking(boolean block);//設置阻塞或非阻塞模式,取值false表示采用非阻塞模式
  • public boolean connect(SocketAddress remote);//連接服務器
  • public boolean finishConnect();//如果上面的方法連接失敗,接下來就要通過該方法完成連接操作
  • public int write(ByteBuffer src);//往通道里寫數(shù)據(jù)
  • public int read(ByteBuffer dst);//從通道里讀數(shù)據(jù)
  • public final SelectionKey register(Selectorsel,int ops,Object att);//注冊一個選擇器并設置監(jiān)聽事件,最后一個參數(shù)可以設置共享數(shù)據(jù)
  • public final void close();//關(guān)閉通道

Netty開篇——NIO章下(五),Netty,nio,java

NIO實現(xiàn)聊天室功能(選修)

  1. 要求:
    • 編寫一個 NIO 群聊系統(tǒng),實現(xiàn)服務器端和客戶端之間的數(shù)據(jù)簡單通訊(非阻塞)
    • 實現(xiàn)多人群聊
    • 服務器端:可以監(jiān)測用戶上線,離線,并實現(xiàn)消息轉(zhuǎn)發(fā)功能
    • 客戶端:通過 channel 可以無阻塞發(fā)送消息給其它所有用戶,同時可以接受其它用戶發(fā)送的消息(有服務器轉(zhuǎn)發(fā)得)
  2. GroupChatServer

    Netty開篇——NIO章下(五),Netty,nio,java

Netty開篇——NIO章下(五),Netty,nio,java

Netty開篇——NIO章下(五),Netty,nio,java

?Netty開篇——NIO章下(五),Netty,nio,java

3. GroupChatClient?

Netty開篇——NIO章下(五),Netty,nio,java

Netty開篇——NIO章下(五),Netty,nio,java

Netty開篇——NIO章下(五),Netty,nio,java文章來源地址http://www.zghlxwxcb.cn/news/detail-806832.html

到了這里,關(guān)于Netty開篇——NIO章下(五)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關(guān)文章

  • 以 Java NIO 的角度理解 Netty

    以 Java NIO 的角度理解 Netty

    上篇文章《Netty 入門指南》主要涵蓋了 Netty 的入門知識,包括 Netty 的發(fā)展歷程、核心功能與組件,并且通過實例演示了如何使用 Netty 構(gòu)建一個 HTTP 服務器。由于 Netty 的抽象程度較高,因此理解起來可能會更加復雜和具有挑戰(zhàn)性,所以本文將通過 Java NIO 的處理流程與 Netty 的

    2024年02月12日
    瀏覽(20)
  • Java NIO 圖解 Netty 服務端啟動的過程

    了解整體Netty常用的核心組件后,并且對比了傳統(tǒng)IO模式。在對比過程中,找到了傳統(tǒng)IO對應Netty中是如何實現(xiàn)的。最后我們了解到在netty中常用的那些組件。 本文在了解下這些核心組件的前提下,進一步了解組件如何在整個服務器啟動過程如何被創(chuàng)建,如何組件之間配合來使

    2024年02月11日
    瀏覽(19)
  • Java網(wǎng)絡編程(二)NIO和Netty實現(xiàn)多人聊天功能
  • 快速入門Java NIO(Not I/O)的網(wǎng)絡通信框架--Netty

    快速入門Java NIO(Not I/O)的網(wǎng)絡通信框架--Netty

    了解netty前需要對nio有一定認識,該筆記基礎來自bilinbili黑馬,在此基礎上自己學習的筆記,添加了一些自己的理解 了解java 非阻塞io編程 1.1 Netty 是什么? Netty 是一個異步(基于多線程)的、基于事件驅(qū)動(多路復用的那寫事件驅(qū)動)的網(wǎng)絡應用框架,用于快速開發(fā)可維護、高性能的

    2024年01月17日
    瀏覽(25)
  • 【netty基礎四】netty與nio

    【netty基礎四】netty與nio

    阻塞I/O在調(diào)用InputStream.read()方法時是 阻塞的,它會一直等到數(shù)據(jù)到來 (或超時)時才會返回; 同樣,在調(diào)用ServerSocket.accept()方法時,也會一直 阻塞到有客戶端連接 才會返回,每個客戶端連接成功后,服務端都會啟動一個線程去處理該客戶端的請求。 阻塞I/O的通信模型示意

    2024年02月10日
    瀏覽(21)
  • 聊聊分布式架構(gòu)06——[NIO入門]簡單的Netty NIO示例

    聊聊分布式架構(gòu)06——[NIO入門]簡單的Netty NIO示例

    目錄 Java NIO和Netty NIO比較 Java NIO: Netty: Netty NIO中的主要模塊 Transport(傳輸層) Buffer(緩沖區(qū)) Codec(編解碼器) Handler(處理器) EventLoop(事件循環(huán)) Bootstrap和Channel(引導和通道) Future和Promise(異步編程) Netty示例 服務端時序圖 服務端代碼 客戶端時序圖 客戶端代碼

    2024年02月07日
    瀏覽(55)
  • NIO和netty的常用類

    給ServerBootstrap配置兩個EventLoopGroup,一個建立連接,一個處理網(wǎng)絡io。 EventLoopGroup給EventLoop分配線程。 在 Netty 中,EventLoop 通過不斷輪詢 Selector 來檢測 Channel 上發(fā)生的事件,當 Channel 上的事件到達時,EventLoop 會將事件傳入 相應的Channel 的成員變量 ChannelPipeline 中,經(jīng)過所有C

    2024年01月25日
    瀏覽(19)
  • Netty和傳統(tǒng)NIO之間的比較

    Netty回顯服務器實現(xiàn): 上述代碼是一個使用Netty實現(xiàn)的回顯服務器。讓我們逐行解釋代碼的實現(xiàn): 首先,我們創(chuàng)建了兩個 NioEventLoopGroup ,一個用于接收客戶端連接(bossGroup),另一個用于處理客戶端連接上的請求(workerGroup)。 然后,我們創(chuàng)建一個 ServerBootstrap 實例,并配置

    2024年01月16日
    瀏覽(25)
  • netty(二):NIO——處理可寫事件

    在服務端一次性無法把數(shù)據(jù)發(fā)送完的情況下,需要注冊可寫事件 服務端一次性是否能夠把數(shù)據(jù)全部發(fā)送完成取決于服務端的緩沖區(qū)大小,該緩沖區(qū)不受程序控制 判斷ByteBuffer是否仍有剩余,如果有剩余注冊可寫事件 監(jiān)聽可寫事件,判斷數(shù)據(jù)是否寫完,數(shù)據(jù)寫完需要 客戶端 服

    2024年02月11日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包