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#二进制图片的读写 vs2005 sql
C#进制转换函数 2,8,10,16进制之间的转换
c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件c#读取二进制文件
C# 二进制数据写入文本
从数据库中取二进制流存到比特数组里,然后转化成word、图像、pdf文件。
C_图片转换成二进制流并且保存到sql_server数据库,或者存储。
C#二进制流操作,C#异步调用,C#二进制流入库源码奉上!
二进制转换为十进制,十进制转换为二进制,控制台应用程序
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″ int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...
C# 二进制文件的读写C# 二进制文件的读写C# 二进制文件的读写C# 二进制文件的读写
C#二进制读写操作
C#16进制与字符串字节数组之间的转换,提供四个转换方法(到16进制 汉字 字节)
C#以二进制流读取wordC#以二进制流读取wordC#以二进制流读取word
本文实例讲述了C#实现把图片转换成二进制以及把二进制转换成图片的方法。分享给大家供大家参考,具体如下: private void button1_Click(object sender, EventArgs e) { string path = this.textBox1.Text; byte...
C# 2进制与16进制的转换 无限位
这是一款浮点数与二进制之间的相互转换的工具,源代码实现了把浮点数转化为四个字节bite位,四个字节的bite位转化为浮点数
c# 处理二进制 c#源码 c# 程序 c# 处理二进制 c#源码 c# 程序
C#中二进制数组h和各种常规数组的转换,二进制序列化和json序列化方法以及对应的反序列化方法的例子,帮助初学者。
很好用的读取dbf类,之前用ado。net没有成功读取,后来试了这个,虽然没有解决我的问题,但是里面代码很强大,可以学习学习