Netty:在一個ByteBuf中尋找另外一個ByteBuf出現的位置

說明

利用ByteBufUtil的indexOf(ByteBuf needle, ByteBuf haystack)函數可以在haystack中尋找needle出現的位置。如果沒有找到,返回-1。

示例

在一個ByteBuf 中找到了另外一個ByteBuf

package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 創建一個ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 創建一個包裹數組的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}

運行輸出:

在這里插入圖片描述

在一個ByteBuf 中沒有找到另外一個ByteBuf

package com.thb;import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;public class Test {public static void main(String[] args) {// 創建一個ByteBufByteBuf buf = Unpooled.buffer();buf.writeByte(22);buf.writeByte(22);buf.writeByte(22);buf.writeByte(104);buf.writeByte(22);// 創建一個包裹數組的ByteBufByteBuf buf2 = Unpooled.wrappedBuffer(new byte[] {104, 22, 22});// 在buf中查找buf2int index = ByteBufUtil.indexOf(buf2, buf);System.out.println(index);}}

運行輸出:

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/35186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35186.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux: network: tools: tcpdump,抓取vlan包需要注意的事情;不然會出現LLC協議

https://bugzilla.redhat.com/show_bug.cgi?id498981#c4 https://serverfault.com/questions/544651/vlan-tags-not-shown-in-packet-capture-linux-via-tcpdump 如果不加-e參數,抓取不到 vlan信息,會導致wireshark解析出現問題。因為,抓到…

AirServer是什么軟件,手機屏幕投屏電腦神器

什么是 AirServer? AirServer 是適用于 Mac 和 PC 的先進的屏幕鏡像接收器。 它允許您接收 AirPlay 和 Google Cast 流,類似于 Apple TV 或 Chromecast 設備。AirServer 可以將一個簡單的大屏幕或投影儀變成一個通用的屏幕鏡像接收器 ,是一款…

PDF Expert 3.3 for mac

PDF Expert是一款專業的PDF編輯和閱讀工具。它可以幫助用戶在Mac、iPad和iPhone等設備上查看、注釋、編輯、填寫和簽署PDF文檔。 以下是PDF Expert的特點: PDF編輯:PDF Expert提供了豐富的PDF編輯功能,包括添加、刪除、移動、旋轉、縮放、裁…

《貧窮的本質》閱讀筆記

《貧窮的本質》閱讀筆記 2023年8月11日在杭州小屋讀完,對于窮,我可有太多想說的了。可以說自己活這么大以來,一直在擺脫貧窮,也將會窮盡一生去避免貧窮。作為一個窮人該如何去擺脫貧窮,我覺得沒有一個確切的答案&#…

windows 安裝免費3用戶ccproxy ubuntu 代理上網

Windows 上進行安裝 ubuntu 上進行設置 方法一 (臨時的手段) 如果僅僅是暫時需要通過http代理使用apt-get,您可以使用這種方式。 在使用apt-get之前,在終端中輸入以下命令(根據您的實際情況替換yourproxyaddress和proxyport)。 終…

Linux防火墻firewalldiptables(2)iptables開放指定端口開放指定端口

一、CentOs6 iptables基本操作 # chkconfig --list | grep iptables 查看防火墻的服務 # chkconfig iptables off 永久關閉防火墻 #chkconfig iptables on 永久開啟防火墻# service status iptables 查看防火墻狀態 # service start iptables 啟動防火墻 # service stop ipta…

HCIA---路由器--靜態路由

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 目錄 前言 一.路由器簡介 二.路由器轉發原理 三.骨干鏈路 四.路由分類 五.靜態路由 六.靜態路由拓展配置 一.負載均衡 二.環回接口 三.手工匯總 四.路由黑洞 五.缺…

【分布式存儲】數據存儲和檢索~B+樹

為什么數據存儲結構重要 在存儲系統中,其實不管數據是什么樣的,歸根結底其實都還是取決于數據的底層存儲結構,而主要常見的就是數據庫索引結構,B樹、Redis中跳表、以及LSM、搜索引擎中的倒排索引。本質都是如何利用不用的數據結構…

軟件設計師(七)面向對象技術

面向對象: Object-Oriented, 是一種以客觀世界中的對象為中心的開發方法。 面向對象方法有Booch方法、Coad方法和OMT方法等。推出了同一建模語言UML。 面向對象方法包括面向對象分析、面向對象設計和面向對象實現。 一、面向對象基礎 1、面向對象的基本…

7. 延遲隊列

延遲隊列 7.1. 延遲隊列概念 延時隊列,隊列內部是有序的,最重要的特性就體現在它的延時屬性上,延時隊列中的元素是希望 在指定時間到了以后或之前取出和處理,簡單來說,延時隊列就是用來存放需要在指定時間被處理的 元素的隊列。 7…

【Spring Boot】構建RESTful服務 — 使用Swagger生成Web API文檔

使用Swagger生成Web API文檔 高質量的API文檔在系統開發的過程中非常重要。本節介紹什么是Swagger,如何在Spring Boot項目中集成Swagger構建RESTful API文檔,以及為Swagger配置Token等通用參數。 1.什么是Swagger Swagger是一個規范和完整的框架&…

QT創建項目

可選擇CMake或qmake

SSL證書DV和OV的區別?

SSL證書是在互聯網通信中保護數據傳輸安全的一種加密工具。它能夠確保客戶端和服務器之間的通信得以加密,防止第三方竊聽或篡改信息。在選擇SSL證書時,常見的有DV證書和OV證書,它們在驗證標準和信任級別上有所不同。那么SSL證書DV和OV的有哪些…

二叉搜索樹K和KV結構模擬

一 什么是二叉搜索樹 這個的結構特性非常重要,是后面函數實現的結構基礎,二叉搜索樹的特性是每個根節點都比自己的左樹任一節點大,比自己的右樹任一節點小。 例如這個圖, 41是根節點,要比左樹大,比右樹小&…

Neo4j之DELETE基礎

在 Neo4j 中,DELETE 語句用于刪除節點、關系或節點屬性。它允許從圖數據庫中移除不再需要的數據。 1】刪除節點及其關系: MATCH (p:Person {name: Alice}) DETACH DELETE p;這個查詢會找到具有 "Person" 標簽且屬性 "name" 為 &qu…

人工智能原理概述 - ChatGPT 背后的故事

大家好,我是比特桃。如果說 2023 年最火的事情是什么,毫無疑問就是由 ChatGPT 所引領的AI浪潮。今年無論是平日的各種媒體、工作中接觸到的項目還是生活中大家討論的熱點,都離不開AI。其實對于互聯網行業來說,自從深度學習出來后就…

進入現代云技術的世界-APIGateway、ServiceMesh、OpenStack、異步化框架、云原生框架、命令式API與聲明式API

目錄 APIGateway Service Mesh OpenStack 異步化框架 云原生框架 命令式API與聲明式API APIGateway API網關(API Gateway)是一個服務器——充當了客戶端和內部服務之間的中間層。API網關負責處理API請求,將客戶端的請求路由到相應的后端…

StringJoiner

1、為什么要學習StringJoiner? 2、StringJoiner概述 StringJoiner跟StringBuilder一樣,也可以看成一個容器,創建之后里面的內容是可變的。 2.1、作用 提高字符串的操作效率,而且代碼編寫特別簡潔,但是目前市場上很少有…

銀行家算法

1.設計目的與要求 1.1設計目的 了解銀行家算法中使用的數據結構和求安全序列算法,并進一步加深對避免死鎖算法及其實現過程的理解。 1.2設計要求 通過編寫和調試一個系統動態分配資源的簡單模擬程序,觀察死鎖產生的條件,并采用適當的算法&a…

2023.8.7論文閱讀

文章目錄 CMUNeXt: An Efficient Medical Image Segmentation Network based on Large Kernel and Skip Fusion摘要本文方法實驗結果 Boundary Difference Over Union Loss For Medical Image Segmentation(損失函數)摘要本文方法實驗結果 CMUNeXt: An E…