信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 3082|回复: 10
打印 上一主题 下一主题

[『VB.NET 图文教程』] VB.NET的字节校验实用的各种方法汇集

[复制链接]

1879

主题

1889

帖子

1万

积分

积分
10994
跳转到指定楼层
宣传软件楼主
发表于 2017-5-16 13:04:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

软件教程首图:

软件教程分类:VB.NET 图文教程 

软件图文教程视频教程分类:软件图文教程 

软件教程难易程度:软件中级教程 

软件教程发布日期:2017-05-16

软件教程关键字:VB.NET校验

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件定制网站 网址:http://www.postbbs.com

软件教程详细描述

 Function Verify(ByVal VerifyString As String) As String
校验规则:

  第一个字节与字节“00”异或,结果与第二个字节异或,以此类推,至最后一个字节,并将最后异或结果表达为16进制ASCII字符

  例:

  bn012000000000012008-01-15 20:42:3000c3@@@SO2,0,,BB,;NOx,0,,BB,;烟尘,0,,BB,;动压,0,,BB,;温度,0,,BB,;静压,0,,BB,;O2,0,,BB,;流速,0,;H2O,6.5,;流量,0,;过量空气系数,1,;SO2折算,0,;NOx折算,0,;烟尘折算,0,;SO2排放率,0,;NOx排放率,0,;烟尘排放率,0,;tek

  其校验码为:20 Dim ChkXor = Encoding.Default.GetBytes(VerifyString)
Dim len As Integer = ChkXor.Length
Dim i As Integer
Dim ChkXorResult = "00"
Dim curByte As Byte
For i = 0 To len - 1
curByte = ChkXor(i)
If curByte <> 0 Then
ChkXor(i) = CByte(curByte Xor ChkXorResult)
End If
ChkXorResult = ChkXor(i)
Next i
Verify = Hex(ChkXorResult)
End Function


校验和算法
    经常看计算机网络相关的书时,每次看到关于IP或者是UDP报头校验和时,都是一笑而过,以为相当简单的东西,不就是16bit数据的相加吗!最近在学习Ping命令的源待时,看到里面有关于校验和的算法。一头雾水,后来查找资料,看到校验和是16bit字的二进制反码和。总是觉得很奇怪,为什么会用反码和,而不是直接求和呢?或者是补码和呢?因为在计算机里面数据是以补码的形式存在啊!经过看书查资料,下面总结一些这个校验和算法具体是怎么实现的。
    首先,IP、ICMP、UDP和TCP报文头都有检验和字段,大小都是16bit,算法基本上也是一样的。
    在发送数据时,为了计算数据包的检验和。应该按如下步骤:
    1、把校验和字段设置为0;
    2、把需要校验的数据看成以16位为单位的数子组成,依次进行二进制反码求和;
    3、把得到的结果存入校验和字段中
    在接收数据时,计算数据包的检验和相对简单,按如下步骤:
    1、把首部看成以16位为单位的数字组成,依次进行二进制反码求和,包括校验和字段;
    2、检查计算出的校验和的结果是否为0;
    3、如果等于0,说明被整除,校验和正确。否则,校验和就是错误的,协议栈要抛弃这个数据包。
    虽然说上面四种报文的校验和算法一样,但是在作用范围存在不同:IP校验和只校验20字节的IP报头;而ICMP校验和覆盖整个报文(ICMP报头+ICMP数据);UDP和TCP校验和不仅覆盖整个报文,而且还有12个字节的IP伪首部,包括源IP地址(4字节)、目的IP地址(4字节)、协议(2字节)、TCP/UDP包长(2字节)。另外UDP、TCP数据报的长度可以为奇数字节,所以在计算校验和时需要在最后增加填充字节0(填充字节只是为了计算校验和,可以不被传送)。
    在UDO传输协议中,校验和是可选的,当校验和字段为0时,表明该UDP报文未使用校验和,接收方就不需要校验和检查了!那如果UDP校验和的计算结果是0时怎么办?书上有一句话:“如果校验和的计算结果为0,则存入的值为全1(65535),这在二进制反码计算中是等效的”
那么校验和到底怎么计算了?
1、什么是二进制反码求和
    对一个无符号的数,先求其反码,然后从低位到高位,按位相加,有益处则向高位进1(和一般的二进制法则一样),若最高位有进位,则向最低位进1.
    首先这里的反反码好像和以前学的有符号反码不一样,这里不分正负数,直接每个为都取反。
    上面加粗的那句话和我们平时的加法法则不一样,最高位有进位,则向最低位进1。确实有些疑惑,为什么要这样呢?自习分析一下,上面的这种操作,使得在发送加法进位溢出时,溢出值并不是10000,而是1111.也即是当相加结果满1111时溢出,这样也可以说明为什么0000和1111都表示0了。
    下面是两种二进制反码求和的运算:
    原码加法运算:3(0011)+5(0101)=8(1000)
                  8(1000)+9(1001)=1(0001)
    反码加法运算:3(1100)+5(1010)=8(0111)
                  8(0111)+9(0110)=2(1101)
    从上面的例子中,当加法未发生溢出时,原码与反码加法运算结果一样;当有溢出时,结果就不一样了,原码是满10000溢出,而反码是满1111溢出,所以相差正好是1.
    另外,关于二进制反码求和运算需要说明的一点是,先取反后相加与先相加后取反,得到的结果是一样的。
2、校验和算法实现
    代码如下:
    USHORT checksum (USHORT *buffer,int size)
    {
        Unsigned long cksum=0;
        While (size>1)
        {
            Cksum +=*buffer++;
            size -=sizeof(USHORT);
        }
        If (size)
        {
            Cksum +=*(UCHAR *) buffer;
        }
        //将32位转换为16位
        While (cksum>>16)
            Cksum = (cksum>>16) + (cksum & 0xffff);
        Return (USHORT) (~cksum);
    }
    buffer是指向需要校验数据缓冲区的指针,size是需要检验数据的总长度(字节为单位)。
    4-13行代码是对数据按16bit累加求和,由于最高位的进位需要加在最低位上,所以cksum必须是32位的unsigned long型,高16bit用于保存累加过程中的进位;另外代码10~13行是对size为奇数情况的处理。
    14~16行代码的作用是将cksum高16bit的值加到低16bit上,即把累加中最高位的进位加到最低位上。这里使用了while循环,判断cksum高16bit是否非零,因为第16行代码执行的时候,还是可能向cksum的高16bit进位。
    有些地方是通过下面两条代码实现的:
    Cksum = (cksum >> 16) + (cksum & 0xffff);
    Cksum = (cksum >> 16);
    这里只进行了两次相加,即可保证相加后cksum的高16位为0,两种方式的效果是一样,事实上,上面的循环也最多执行两次!
    17行代码即对16bit数据累加的结果取反,得到二进制反码求和的结果,然后函数返回该值。
    3、为什么使用二进制反码求和呢?
    为什么要使用二进制反码来计算校验和呢,而不是直接使用原码或者是补码呢?
    在谷歌上找到一篇相关的文章:
    VB.NET的字节校验实用的各种方法汇集 b2b软件
    上面是原文的一部分,说明在TCP/IP校验和中使用反码求和的一些优点:
a、 不依赖系统是大端小端。即无论你是发送方计算机或者接收方检查校验和时,都不要调用htons或者ntohs,直接通过上面的算法就可以得到正确的结果。这个问题你可以自己举个例子,用反码求和时,交换16位数的字节顺序,得到的结果相同,只是字节顺序相应地也交换了;而如果使用原码或者补码求和,得到的结果可能就不同。
b、 计算和验证校验和比较简单、快递。






unto软文发布软件自动挂机刷外链信息发布软件脚本next在VB.NET编程中使用数组让您编程有一个质的速度
回复

使用道具 举报

0

主题

165

帖子

176

积分

积分
176
信息发布软件沙发
发表于 2017-5-19 18:20:50 | 只看该作者
效率,好评!!!!

回复 支持 反对

使用道具 举报

1

主题

608

帖子

594

积分

积分
594
推广工具板凳
发表于 2017-5-22 01:04:09 | 只看该作者
真正的物超所值!

回复 支持 反对

使用道具 举报

0

主题

641

帖子

635

积分

积分
635
软件定制开发地板
发表于 2017-5-22 14:01:56 | 只看该作者
卖家,技术精湛,,人也很好!

回复 支持 反对

使用道具 举报

0

主题

1012

帖子

1018

积分

积分
1018
5#定制软件#
发表于 2017-5-24 03:27:09 | 只看该作者
下次还会找!只是这一行大概都没啥空理你,所以一般都会态度都一般。这个卖家算有良心了。之前有个卖家因为和我在价钱上有些有争执。直接上我网站搞乱那些东西。这行还是很讲良心的!诚信很重要

回复 支持 反对

使用道具 举报

0

主题

607

帖子

599

积分

积分
599
6#定制软件#
发表于 2017-5-27 14:26:51 | 只看该作者
,上手简单。

回复 支持 反对

使用道具 举报

0

主题

1025

帖子

1027

积分

积分
1027
7#定制软件#
发表于 2017-5-29 11:49:25 | 只看该作者
很满意

回复 支持 反对

使用道具 举报

0

主题

625

帖子

615

积分

积分
615
8#定制软件#
发表于 2017-6-2 05:22:57 | 只看该作者
是只是做了后台,其他内容都需要自己填充,不过给了技术顾问,很耐心的教怎么弄,因为这个东西以后毕竟都需要自己来弄,还是很赞的说,

回复 支持 反对

使用道具 举报

0

主题

631

帖子

592

积分

积分
592
9#定制软件#
发表于 2017-6-2 06:18:19 | 只看该作者
高大上了,服务很周到,能达到我想要的效果,设计后生意越来越好了!好开心啊!

回复 支持 反对

使用道具 举报

0

主题

165

帖子

176

积分

积分
176
10#定制软件#
发表于 2017-6-2 08:06:41 | 只看该作者
,大家要小心啊

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
群发软件AIWROK苹果系统打印H5界面日志输出
AIWROK苹果系统打印H5界面日志输出
群发软件H5案例自动化看广告撸金币系统
H5案例自动化看广告撸金币系统
群发软件AIWROK苹果脚本H5任务执行小例子
AIWROK苹果脚本H5任务执行小例子
群发软件AIWROK软件苹果水平容器[Horizontal]小实例
AIWROK软件苹果水平容器[Horizontal]小实例
群发软件AIWROK苹果脚本实例1界面UI输入框类[Input]
AIWROK苹果脚本实例1界面UI输入框类
群发软件AIWROK软件苹果脚本案例1空白站位[Space]方法
AIWROK软件苹果脚本案例1空白站位[Space]方法
群发软件AIWROK软件苹查系统复选框用法
AIWROK软件苹查系统复选框用法
群发软件苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
苹果AIWROK实例单选按钮组类[RadioButtonGroup]完整综合示例
群发软件AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
AIWROK软件苹果实例UI-垂直容器[Vertical]高级综合示例
群发软件IOS苹果脚本View的完整功能实例
IOS苹果脚本View的完整功能实例
群发软件AIWROK苹果系统实例演示1标签类[Label]方法
AIWROK苹果系统实例演示1标签类[Label]方法
信息发布软件AIWROK软件苹果UI按钮Button方法示例
AIWROK软件苹果UI按钮Button方法示例
信息发布软件AIWROK软件苹果TAB界面视图示例
AIWROK软件苹果TAB界面视图示例
信息发布软件AIWROK苹果系统自带view视图简洁UI界面示例
AIWROK苹果系统自带view视图简洁UI界面示例
信息发布软件汇集HID安卓输入文字的方法和复制粘贴示例
汇集HID安卓输入文字的方法和复制粘贴示例
信息发布软件AIWROK软件找字与OCR方法汇总示例
AIWROK软件找字与OCR方法汇总示例
信息发布软件AIWROK软件找图方法汇总示例
AIWROK软件找图方法汇总示例
信息发布软件AIWROK软件滑动方法集合示例
AIWROK软件滑动方法集合示例
信息发布软件AIWROK软件安卓AIWROK汇集软件点击
AIWROK软件安卓AIWROK汇集软件点击
信息发布软件苹果系统点击方法综合示例
苹果系统点击方法综合示例
信息发布软件AIWROK苹果系统找图方法完整示例集合
AIWROK苹果系统找图方法完整示例集合
信息发布软件苹果系统找图方法完整示例集合
苹果系统找图方法完整示例集合
信息发布软件苹果IOS系统找字OCR方法例子
苹果IOS系统找字OCR方法例子
信息发布软件AIWORK软件数组高级示例
AIWORK软件数组高级示例
信息发布软件AIWROK软件运算符封装库示例
AIWROK软件运算符封装库示例
信息发布软件AIWROK软件语法运行小示例
AIWROK软件语法运行小示例
信息发布软件AIWROK软件JS循环小示例
AIWROK软件JS循环小示例
信息发布软件AIWROK软件H5网页被主脚本获取值用法
AIWROK软件H5网页被主脚本获取值用法
信息发布软件AIWROK软件创建可暂停恢复的多线程任务
AIWROK软件创建可暂停恢复的多线程任务
信息发布软件AIWROK软件类型转换方法例子
AIWROK软件类型转换方法例子
信息发布软件AIWROK软件H5脚本执行与进度显示
AIWROK软件H5脚本执行与进度显示 .
信息发布软件AIWROK软件根据时间段执行异步任务支持多线程并行处理
AIWROK软件根据时间段执行异步任务支持多线程并行处理
信息发布软件H5自动开关执行脚本功能演示
H5自动开关执行脚本功能演示
信息发布软件AIWROK软件H5单选脚本运行示例
AIWROK软件H5单选脚本运行示例
信息发布软件H5任务脚本选择与执行中心
H5任务脚本选择与执行中心
信息发布软件H5里CheckBox控件演示
H5里CheckBox控件演示
信息发布软件AIWROK软件正则用法实际例子
AIWROK软件正则用法实际例子
信息发布软件AIWROK软件权限管理器实现
AIWROK软件权限管理器实现
信息发布软件AIWORK软件节点方法无碍示例子
AIWORK软件节点方法无碍示例子
信息发布软件JSON.stringify 和 JSON.parse 完整示例
JSON.stringify 和 JSON.parse 完整示例
信息发布软件AIWROK软件展示JavaScript各种语句标识符的用法
AIWROK软件展示JavaScript各种语句标识符的用法
信息发布软件JS巧妙地组合使用各种条件语句
JS巧妙地组合使用各种条件语句
信息发布软件AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
AIWROK手机数据库MySQL数据库截图片批量上传操作脚本
信息发布软件HID中文输入智能打字功能
HID中文输入智能打字功能
信息发布软件AIWROK软件对象工具函数库例子
AIWROK软件对象工具函数库例子
信息发布软件AIWROK软件H5交互演示黄色主题
AIWROK软件H5交互演示黄色主题
信息发布软件H5单按钮执行脚本示例
H5单按钮执行脚本示例
信息发布软件苹果H5界面完整调用脚本示例
苹果H5界面完整调用脚本示例
信息发布软件AIWROK软件平台设备信息全面检测工具例子
AIWROK软件平台设备信息全面检测工具例子
信息发布软件AIWROK创建和放大日志窗口并展示动态内容
AIWROK创建和放大日志窗口并展示动态内容
信息发布软件AIWROK软件device相关方法获取设备信息例子
AIWROK软件device相关方法获取设备信息例子[/backcolor]
信息发布软件数据库MySQL实时内容随机调用
数据库MySQL实时内容随机调用
信息发布软件AIWROK软件分享一个特效苹果H5页面
AIWROK软件分享一个特效苹果H5页面
信息发布软件数据库MYQ业务流程心跳程序启动
数据库MYQ业务流程心跳程序启动
信息发布软件数据库MySQL功能支持创建表插入中文数据查询删除功能例子
数据库MySQL功能支持创建表插入中文数据查询删除功能例子
信息发布软件AIWROK软件Zip 高级操作复杂示例
AIWROK软件Zip 高级操作复杂示例
信息发布软件AIWROK软件txt_文件读写方法小结
AIWROK软件txt_文件读写方法小结
信息发布软件AIWROK软件file文件操作方法小结
AIWROK软件file文件操作方法小结
信息发布软件AIWORK软件配置读写H5演示配套脚本
AIWORK软件配置读写H5演示配套脚本
信息发布软件AIWROK配置读写功能演示示例
AIWROK配置读写功能演示示例
信息发布软件AIWROK截图缓存工具
AIWROK截图缓存工具
信息发布软件AIWROK线程许可证工具
AIWROK线程许可证工具
信息发布软件整理了AIWROK环境下常用的Date对象和sleep对象方法
整理了AIWROK环境下常用的Date对象和sleep对象方法
信息发布软件FastUI界面普通用法
FastUI界面普通用法
信息发布软件FastUI界面类[window]方法小结
FastUI界面类[window]方法小结 方法 1:close(关闭指定窗口)方法 2:closeAll(关闭所有窗口)方法 3:loadUI(加载 UI 界面)方法 4:onClose(监听窗口关闭事件)方法 5:onLoad(监听窗口加载事件)方法 6:setFull(设置窗口全屏)方法 7:setHeight(设置窗口高度)方法 8:setHidden(隐藏窗口)方法 9:setLeft(设置窗口 X 轴坐标)方法 10:setTop(设置窗口 Y 轴坐标)方法 11:setVisable(显示隐藏的窗口)方

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-3-10 20:21 , Processed in 0.332315 second(s), 55 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表