C# 二进制字节流查找函数IndexOf

C# 二进制字节流查找函数IndexOf

        /// <summary>
        /// 报告指定的 System.Byte[] 在此实例中的第一个匹配项的索引。
        /// </summary>
        /// <param name="srcBytes">被执行查找的 System.Byte[]。</param>
        /// <param name="searchBytes">要查找的 System.Byte[]。</param>
        /// <returns>如果找到该字节数组,则为 searchBytes 的索引位置;如果未找到该字节数组,则为 -1。如果 searchBytes 为 null 或者长度为0,则返回值为 -1。</returns>
        internal int IndexOf(byte[] srcBytes, byte[] searchBytes)
        {
            if (srcBytes == null) { return -1; }
            if (searchBytes == null) { return -1; }
            if (srcBytes.Length == 0) { return -1; }
            if (searchBytes.Length == 0) { return -1; }
            if (srcBytes.Length < searchBytes.Length) { return -1; }
            for (int i = 0; i < srcBytes.Length - searchBytes.Length; i++)
            {
                if (srcBytes[i] == searchBytes[0])
                {
                    if (searchBytes.Length == 1) { return i; }
                    bool flag = true;
                    for (int j = 1; j < searchBytes.Length; j++)
                    {
                        if (srcBytes[i + j] != searchBytes[j])
                        {
                            flag = false;
                            break;
                        }
                    }
                    if (flag) { return i; }
                }
            }
            return -1;
        }

使用示例:

receiveData = new byte[1024];
int receiveLen = socket.ReceiveFrom(receiveData, ref ep);
receiveData = this.SubByte(receiveData, 0, receiveLen);
 if (this.IndexOf(receiveData, System.Text.Encoding.Unicode.GetBytes("Exec_Exit")) != -1)
{
    this.runing = false;
    break;
 }
时间: 2024-10-01 02:25:34

C# 二进制字节流查找函数IndexOf的相关文章

文件查找函数 php

函数 文件查找函数 php   CODE:   <?php /*文件查找函数用法:findfile (目录,是否遍历子目录,是否查找文件内容,不查找的目录) ;Ketle 2005-07-07*/function findfile ($dir, $find_sub_dir=false, $find_content=false, $except_dir=false) {                $d = dir($dir);        while (false !== ($entry =

wps表格中怎样让“高级筛选”变身查找函数

  如图所示,如果让你来查找"湖山音响店""华都窗帘超市"对应的"开户行""帐号"你一般会怎么做呢?是不是第一时间会想到查找函数vlookup这个函数来显示呢?其实还可以用高级筛选来实以现,简单几步就能实现,跟着我来做吧! 1.打开要编辑的工作表,在同一工作表中设置好要查找的内容. 2.按下图所示位置,单击[wps表格] 下拉菜单. 3.按下图所示,选择[数据] 命令中[筛选] ,选择[高级筛选] 后, 单击鼠标. 4.打开[

Python查找函数f(x)=0根的解决方法

  这篇文章主要介绍了Python查找函数f(x)=0根的解决方法,涉及Python数学运算函数求解的相关技巧,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ''' root = ridder(f,a,b,tol=1.0e-9). Finds a root of f(x) = 0 with Ridder's method. The root m

c#-求C#十进制数与二进制补码的相互转换函数?多谢各位大侠了

问题描述 求C#十进制数与二进制补码的相互转换函数?多谢各位大侠了 我想求C#语言写的的16进制显示的字符串与二进制补码相互转换函数 解决方案 //十进制转二进制Console.WriteLine(Convert.ToString(69 2));//十进制转八进制Console.WriteLine(Convert.ToString(69 8));//十进制转十六进制Console.WriteLine(Convert.ToString(69 16));//二进制转十进制Console.WriteL

php数组查找函数总结_php技巧

本文实例总结了php数组查找函数.分享给大家供大家参考.具体如下: 这里提供三种方法来判断一个字符串中是否包括我们定义好的词,这比较适合于在留言,评论等地址进行关键词过滤,实例代码如下: 复制代码 代码如下: $crud = array('中国|||我国|||大地', 'kelon|||lerke|||sb', 'sesscxx'); $crud = join('|',$crud); $crud = str_replace('|||', '|', $crud); $pat  = "/({$cru

php中字符查找函数strpos、strrchr与strpbrk用法_php技巧

本文实例讲述了php中字符查找函数strpos.strrchr与strpbrk用法.分享给大家供大家参考.具体如下: ① strpos() 函数返回字符串在另一个字符串中第一次出现的位置,如果没有找到该字符串,则返回 false. 语法:strpos(string,find,start),代码如下: 复制代码 代码如下: $str="hello world";          //定义字符串1 $result=strpos($str,"ll");        

sql 字符串查找函数

拼串的时候用char(39) 代替单引号,char(37)代替% set @sql = 'select * from authors where address like '+char(39)+char(37)+@str+char(37)+char(39) sql 字符串查找函数

libburnia 1.1.4发布 二进制程序和函数库工具

libburnia是一个由读取.掌握和写入光盘的二进制程序和函数库组成的工具.其功能是提供了libburn,CD/DVD/BD刻录库,libisofs,ISO 9660文件系统的操作库,libisoburn,ISO 9660多会话库,等等. libburnia 1.1.4版本修复了libburn的一些bug. 下载地址:http://files.libburnia-project.org/releases/libburn-1.1.4.tar.gz

Ajax发送和接收二进制字节流数据的方法_AJAX相关

HTML5 Ajax 2.0标准中,增强了Ajax的许多功能,包括发送FormData数据,上传数据进度条等诸多功能.但实际上,Ajax可以字节发送二进制数据. 发送二进制数据 var oReq = new XMLHttpRequest(); oReq.open("POST", url, true); oReq.onload = function (oEvent) { // Uploaded. }; var blob = new Blob(['abc123'], {type: 'tex