`
testcs_dn
  • 浏览: 113917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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;
 }


分享到:
评论

相关推荐

    C# 二进制图片的读写

    二进制图片读写的基本思路是将图片转换为字节流,然后进行保存或加载。 ### 读取二进制图片 1. **使用`System.Drawing.Image`类**:首先,你可以使用`System.Drawing.Image.FromFile()`方法读取图片文件,将其转换...

    C#进制转换函数(2,8,10,16进制之间的转换)

    ### 二、C#进制转换函数详解 #### 1. 从十进制转换为其他进制 C#中,我们可以通过调用`Convert.ToString`方法将一个十进制数转换为二进制、八进制或十六进制字符串表示形式。示例如下: ```csharp int decimal...

    C#二进制图片的存储或读取

    在C#编程语言中,这种操作是通过读取和写入二进制流来实现的。本文将深入探讨如何在C#中进行二进制图片的存储和读取,并结合SQL Server数据库进行操作。 首先,让我们了解二进制流的基本概念。二进制流是计算机处理...

    C#读二进制流生成图像

    ### C#读取二进制流并生成图像的知识点 #### 一、概述 在C#编程中,从数据库中获取二进制流,并将其转换为图像、Word文档或PDF文件是一项常见的需求。这种需求常见于需要将存储在数据库中的各种格式文件(如图像、...

    c# 二进制与十进制的转换

    在C#中,可以使用`Convert.ToInt32()`函数将二进制字符串转换为十进制整数。该函数接受一个字符串参数,表示要转换的二进制数,并指定基数(在这种情况下是2)。 ```csharp string binaryString = "10101"; int ...

    C#二进制流方式读取dbf

    标题“C#二进制流方式读取dbf”指出了我们将在C#中使用二进制流(BinaryReader和BinaryWriter)来处理DBF文件。这种方法的优点是可以直接访问文件的字节,无需通过数据库驱动或ADO.NET这样的高级接口,从而可能提高...

    C#中二进制数组转换,二进制序列化和json序列化方法

    二进制序列化使用BinaryFormatter类,它可以将对象转换为字节流,方便存储或在网络上传输。以下是一个简单的例子: ```csharp public class MyClass { public int Value { get; set; } } MyClass obj = new ...

    C#以二进制流读取word

    本篇文章将深入探讨如何在C#中以二进制流读取Word文档。 首先,理解二进制流的概念至关重要。二进制流是计算机存储和传输数据的基本方式,它允许程序以原始字节序列的形式处理文件,而不是以文本或其他高级格式。在...

    C# 浮点数与二进制之间的转换 源码

    标签“C# 浮点数与二进制之间的转换”进一步强调了这个工具的主要功能,它可能包括一个或多个函数,如`FloatToBinary`和`BinaryToFloat`,分别用于执行上述转换。 压缩包内的文件“十六进制转化为浮点数”可能是一...

    C# 二进制流入库源码下载

    在C#编程中,二进制流是一种处理数据的基本方式,尤其在进行低级I/O操作、文件存储、网络通信和序列化时至关重要。本文将深入探讨C#中二进制流的操作,以及如何实现异步调用。我们将基于提供的"二进制流操作"源码来...

    c#读取二进制文件c#读取二进制文件

    根据给定的信息,本文将详细解释C#中如何读取和写入二进制文件,以及涉及的相关知识点。 ### C#读取与写入二进制文件 在C#编程中,经常需要处理二进制文件,比如图像、音频文件等非文本数据。为了高效地读写这些...

    C# 进制转换的实现(二进制、十六进制、十进制互转)

    由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″  int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...

    C#文件2进制流转换

    在C#编程中,文件和二进制流的转换是一个常见的操作,特别是在处理图像、音频、视频等非文本数据时。二进制流是计算机内存中以0和1表示的数据流,它可以精确地保存和传输文件的所有原始信息。本文将深入探讨如何在C#...

    C#实现把图片转换成二进制以及把二进制转换成图片的方法示例

    本文主要介绍了C#实现把图片转换成二进制以及把二进制转换成图片的方法,并结合具体实例形式分析了基于C#的图片与二进制相互转换以及图片保存到数据库的相关操作技巧。 一、图片转换成二进制 在C#中,可以使用...

    C# 以二进制字节和文本形式读入文件 源代码

    本文将深入探讨如何以二进制字节和文本形式读取文件,并提供相关的源代码示例。这两种方式在处理不同类型的数据时各有优势,理解它们的工作原理和适用场景对于任何C#开发者来说都是至关重要的。 首先,我们来讨论二...

    C#浮点数和16进制字节数互相转换

    在C#编程语言中,处理浮点数与16进制表示之间转换是常见的任务,尤其是在数据存储、网络传输或二进制解析等场景。本文将深入探讨如何使用C#来实现单精度浮点数(Single)与16进制字符串的相互转换。 首先,我们需要...

    c# 处理二进制 c#源码 c# 程序

    总结,C#处理二进制数据涉及到二进制流、序列化与反序列化、数值类型的二进制表示、以及网络和文件操作等多个方面。理解并掌握这些概念,能够让你更有效地处理各种复杂的二进制数据任务。在实际项目中,根据需求选择...

    C#二进制读写操作

    在C#编程中,二进制读写操作是处理数据流的一种重要技术,尤其是在需要存储或传输原始字节数据时。二进制读写器(BinaryReader和BinaryWriter)是.NET框架提供的一对类,用于从流中读取和向流中写入基本类型的数据。...

    C# 2进制与16进制的转换 无限位

    本文将深入探讨如何在C#中进行二进制(Binary)与十六进制(Hexadecimal)的无限位转换,以及相关的知识点。 首先,我们要了解二进制和十六进制的基本概念。二进制是一种仅使用0和1两个数字的计数系统,而十六进制...

Global site tag (gtag.js) - Google Analytics