- 博客(7)
- 收藏
- 关注
原创 python实现一个简单的ping工具
继上一篇计算checksum校验和,本章通过socket套接字,struct字节打包成二进制,select返回套接字的文件描述符,简单实现一个ping工具。#!/usr/bin/python3.6.4#!coding:utf-8__author__ = 'Rosefinch'__date__ = '2018/5/31 22:27'import timeimport structi...
2018-05-31 23:14:13 25461 9
原创 errno模块使用
我们都知道一些常用的异常类型,比如说(IOError,Exception,AttributeError),这些都是大部分标准的错误,细分下来又有不同的类型错误,这时候你需要能够区分一个更细分不同的错误,当然你也可以创建一个自定义的异常,但通常不必要的。回正题,那么我们该如何引发这些异常,如何获取完整的Error列表以及所描述的意思呢。Errno 2: No such file or direc...
2018-05-31 16:31:03 2756
原创 如何计算icmp校验和
前几天看到一个大佬写的icmp远控后门,对icmp协议充满了激情,实现整个程序首先要了解imcp包请求与回复,在整个请求中最先就涉及到icmp包的构造,然而本章简要讨论校验和,然后将详细通过python编程计算校验和。什么是Checksum?校验和基本上是一个从数据包计算出来的值来检查其完整性。通过完整性,我们可以检查收到的数据是否没有错误。这是因为在网络上传输时,数据包可能会损坏,并...
2018-05-31 10:34:45 27418 14
翻译 堆排序
堆的排序分为两个阶段,在堆的构造阶段中,我们将原始的数组重新组织安排进一个堆中,然后在下沉排序阶段,我们从堆中按递减顺序取出所有元素并得到排序结果。本文摘自算法第四版堆排序章节。![堆排序:堆的构造(左)和下沉排序(右)](https://img-blog.csdn.net/20180517145513926?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubm...
2018-05-17 15:02:48 146
翻译 char和varchar有什么区别?
VARCHAR 是可变长度的。CHAR 是固定长度。如果您的内容是固定大小的,那么您将获得更好性能的CHAR 有关详细解释,请参阅CHAR和VARCHAR类型的MySQL页面(请务必阅读注释)。CHAR1.用于存储固定长度的字符串值。 2.最大数量 数据类型可容纳的字符数为255个字符。 3.它比varchar**快50%**。 4.使用静态内容分配VARCHAR1...
2018-05-03 18:05:45 1159
翻译 快速排序
快速排序是一种分治的排序算法。它将一个数组分成两个子分组,将两部分独立地排序。每次通过递归地调用切分来排序的。Quick.py#!-*-coding:utf8-*-import operator,time,randomstart = time.clock()def quick(arr): lo = 0 hi = len(arr) - 1 quick_so...
2018-05-01 16:56:06 131
翻译 希尔排序
希尔排序是一种基于插入排序的快速的排序算法,对于很大的数组数来说插入排序会很慢,因为它只会交换相邻的元素,因此元素只能一点点地从数组的一端移动到另一端了。例如,一个很小的数,它正好在数组尽头,要把它移到正确的位置就要n - 1次移动。希尔排序为了加快速度简单地改进了插入排序,交换不相邻的元素以对数组局部进行排序,并最终用插入排序将局部有序的数组进行排序。希尔排序的思想是使数组中任意间隔h的元素有序...
2018-05-01 16:20:33 237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人