自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

增智同学

知乎@增智同学

  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 【自顶向下】wireshark实验 第二章 HTTP

基本HTTP GET/response交互实验过程与第一章一样,请求一下目标网页,用wireshark抓到数据包就完事了。之后就是分析报文找问题的答案。Q:您的浏览器是否运行HTTP版本1.0或1.1?服务器运行什么版本的HTTPA:Request Version: HTTP/1.1 Response Version: HTTP/1.1Q您的浏览器会从接服务器接受哪种语言(如果有的话)?A:zh-CN(简体中文)Q您的计算机的IP地址是什么? gaia.cs.u

2021-10-09 15:57:43 2809 1

原创 【自顶向下】wireshark实验 第一章

这一节主要就是熟悉以下wireshark的使用。步骤上就是安装wireshark,用wireshark选择监听网络接口并开始监听,并通过浏览器打开一个web网页,暂停监听并筛选监听报文中的http报文,并观察报文结构,最后退出wireshark就行了。选择网络接口这里我用的学校的热点所以选择WLAN来监听开始监听用wireshark开始监听经过WLAN接口的网络报文,如图所示监听http报文用浏览器打开网页,这里是打开的文档中的CMU的配套网页。然后筛选监听报文中的http报文从这

2021-10-08 21:39:37 902

转载 goroutine 协程

Go 协程是什么goroutine是Go语言并行设计的核心。goroutine说到底就是线程,但是它比线程更小,十几个 goroutine 可能体现在底层就是五六个线程,Go 语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。Go 协程(goroutine)相比于线程(thread)的优势相比线程而言,Go 协

2020-10-18 15:57:03 263

转载 接口(interface)

5-1 接口什么是接口在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为。接口只指定了对象应该做什么,至于如何实现这个行为(即实现细节),则由对象本身去确定。在 Go 语言中,接口就是方法签名(Method Signature)的集合。当一个类型定义了接口中的所有方法,我们称它实现了该接口。这与面向对象编程(OOP)的说法很类似。接口指定了一个类型应该具有的方法,并由该类型决定如何实现这些方法。例如,WashingMachine 是一个含有 Cleaning() 和 Drying() 两个

2020-10-18 15:55:06 315

转载 结构体

什么是结构体结构体是用户定义的类型,表示若干个字段(Field)的集合。有时应该把数据整合在一起,而不是让这些数据没有联系。这种情况下可以使用结构体。例如,一个职员有 firstName、lastName 和 age 三个属性,而把这些属性组合在一个结构体 employee 中就很合理。结构体的声明type Employee struct { firstName string lastName string age int}在上面的代码片段里,声明了一个结

2020-10-18 15:54:19 151

转载 方法(Object)

2-3 方法什么是方法方法其实就是一个函数,在 func 这个关键字和方法名中间加入了一个特殊的接收器类型。接收器可以是结构体类型或者是非结构体类型。接收器是可以在方法的内部访问的。下面就是创建一个方法的语法。func (t Type) methodName(parameter list) {}上面的代码片段创建了一个接收器类型为 Type 的方法 methodName。方法示例让我们来编写一个简单的小程序,它会在结构体类型上创建一个方法并调用它。package mainimport

2020-10-18 15:52:17 125

转载 Go语言的map

什么是mapmap 是在 Go 中将值(value)与键(key)关联的内置类型。通过相应的键可以获取到值。类似与Python中的字典。如何创建map通过向 make 函数传入键和值的类型,可以创建 map。make(map[type of key]type of value) 是创建 map 的语法。personSalary := make(map[string]int)上面的代码创建了一个名为 personSalary 的 map,其中键是 string 类型,而值是 int 类型。map

2020-10-18 15:51:02 5117

转载 Array和Slices

4-1 Array和Slices数组数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型)数组的声明一个数组的表示形式为 [n]T。n 表示数组中元素的数量,T 代表每个元素的类型。元素的数量 n 也是该类型的一部分(稍后我们将详细讨论这一点)。可以使用不同的方式来声明数组,让我们一个一个的来看。package mainimp

2020-10-18 15:49:54 129

转载 4-2 可变参数函数

什么是可变参数函数可变参数函数是一种参数个数可变的函数。语法如果函数最后一个参数被记作 ...T ,这时函数可以接受任意个 T 类型参数作为最后一个参数。请注意只有函数的最后一个参数才允许是可变的。通过一些例子理解可变参数函数如何工作你是否曾经想过 append 函数是如何将任意个参数值加入到切片中的。这样 append 函数可以接受不同数量的参数。func append(slice []Type, elems ...Type) []Type上面是 append 函数的定义。在定义中 el

2020-10-08 21:17:54 169

转载 4-1 数组和切片

数组数组是同一类型元素的集合。例如,整数集合 5,8,9,79,76 形成一个数组。Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组。(译者注:当然,如果是 interface{} 类型数组,可以包含任意类型)数组的声明一个数组的表示形式为 [n]T。n 表示数组中元素的数量,T 代表每个元素的类型。元素的数量 n 也是该类型的一部分(稍后我们将详细讨论这一点)。可以使用不同的方式来声明数组,让我们一个一个的来看。package mainimport ( "fmt")

2020-10-07 21:36:26 140

转载 3-3 Go语言的switch语句

switch 是一个条件语句,用于将表达式的值与可能匹配的选项列表进行比较,并根据匹配情况执行相应的代码块。它可以被认为是替代多个 if else 子句的常用方式。看代码比文字更容易理解。让我们从一个简单的例子开始,它将把一个手指的编号作为输入,然后输出该手指对应的名字。比如 0 是拇指,1 是食指等等。package mainimport ( "fmt")func main() { finger := 4 switch finger { case 1:

2020-10-03 20:30:32 133

转载 3-2 Go语言的循环

循环语句是用来重复执行某一段代码。for 是 Go 语言唯一的循环语句。Go 语言中并没有其他语言比如 C 语言中的 while 和 do while 循环。for循环语法for initialisation; condition; post { }初始化语句只执行一次。循环初始化后,将检查循环条件。如果条件的计算结果为 true ,则 {} 内的循环体将执行,接着执行 post 语句。post 语句将在每次成功循环迭代后执行。在执行 post 语句后,条件将被再次检查。如果为 true, .

2020-10-03 19:45:11 187

转载 3-1 Go的if-else语句

if 是条件语句。if 语句的语法是if condition { }如果 condition 为真,则执行 { 和 } 之间的代码。不同于其他语言,例如 C 语言,Go 语言里的 { } 是必要的,即使在 { } 之间只有一条语句。if 语句还有可选的 else if 和 else 部分。if condition { } else if condition {} else {}if-else 语句之间可以有任意数量的 else if。条件判断顺序是从上到下。如果 if 或 els

2020-10-02 21:45:02 95

转载 2-2 Go语言的包(package)

到目前为止,我们看到的 Go 程序都只有一个文件,文件里包含一个 main 函数和几个其他的函数。在实际中,这种把所有源代码编写在一个文件的方法并不好用。以这种方式编写,代码的重用和维护都会很困难。而包(Package)解决了这样的问题。包用于组织 Go 源代码,提供了更好的可重用性与可读性。由于包提供了代码的封装,因此使得 Go 应用程序易于维护。例如,假如我们正在开发一个 Go 图像处理程序,它提供了图像的裁剪、锐化、模糊和彩色增强等功能。一种组织程序的方式就是根据不同的特性,把代码放到不同的包中。

2020-10-02 12:15:51 161

转载 2-1 Go的函数(function)

什么是函数就像数学中的函数y=f(x)y = f(x)y=f(x)数学中的函数由输入xxx,输出yyy,以及算法fff组成而Go语言的函数与数学的函数类似,是一块执行特定任务的代码(类比数学函数中的算法fff)。一个函数是在输入源(类比数学函数中的输入xxx)基础上,通过执行一系列的算法,生成预期的输出(类比数学函数中的输入yyy)。声明一个函数在Go语言中声明函数可以用关键字funcfunc function1(value int) int{ // 在此处填写函数体 return v

2020-09-28 21:05:24 119

原创 1-9 Go语言的Channel

1-9 Go语言的Channel Silce Map 和 ArrayChannelChannel是Go中的一个核心类型,你可以把它看成一个管道,通过它并发核心单元就可以发送或者接收数据进行通讯(communication)。它的操作符是箭头 <-,其中箭头指向哪,数据就流向哪。ch <- v // 发送值v到Channel ch中v := <-ch // 从Channel ch中接收数据,并将数据赋值给vchannel变量必须先创建后使用,创建channel方法如下

2020-09-21 17:57:43 265

原创 1-8 自定义类型

1-8 自定义类型可将类型分为命名和未命名两⼤类。命名类型包括 bool、int、string 等,⽽ array、slice、map 等和具体元素类型、⻓度等有关,属于未命名类型。具有相同声明的未命名类型被视为同⼀类型。被视为同一类型的原则具有相同基类型的指针。具有相同元素类型和长度的array具有相同元素类型的slice具有相同键值类型的map具有相同元素类型和传送方向的channel具有相同字段序列 (字段名、类型、标签、顺序) 的匿名struct签名相同 (参数和返回值,不包括参

2020-09-21 17:41:08 110

原创 1-7 指针

1-7 指针在go语言中定义指针时,支持指针类型 *T,指针的指针 **T,以及包含包名前缀的 *.T。指针的特性默认值 nil,没有 NULL 常量。操作符 “&” 取变量地址,"*" 透过指针访问目标对象。不支持指针运算,不支持 “->” 运算符,直接用 “.” 访问目标成员。package mainimport "fmt"func main() { type data struct { a int } var d = data{1234} var p

2020-09-20 20:04:47 121

原创 1-6 字符串

1-6 字符串在Go语言里面,字符串属于不可变数值类型,也就是是当变量的值发生改变时,其内存地址发生改变。在Go语言内部字符串是使用指针指向UTF-8数组。当然,与不可变数值类型相反,可变数值类型的意思就是,当变量的值发生改变时,其内存地址不发生改变。默认值是空字符串 “”。用索引号访问某字节,如 s[i]。不能用序号获取字节元素指针,&s[i] 非法。不可变类型,无法修改字节数组。字节数组尾部不包含 NULL使用 “`” 定义不做转义处理的原始字符串,支持跨行s := ` a

2020-09-19 21:24:01 184

原创 1-5 类型转换

1-5 类型转换不支持隐式类型转换,即便是从窄向宽转换也不行。var b byte = 100 // var n int = b // Error: cannot use b (type byte) as type int in assignment var n int = int(b) // 显式转换使用括号避免优先级错误*Point(p) // 相当于 *(Point(p)) (*Point)(p) <-chan int(c)

2020-09-18 21:36:58 127

原创 1-4 常量

1-4 常量代码实现package mainimport ( "fmt" "math" "unsafe")const x, y int = 1, 2 // 多常量初始化const s = "Hello, World!" // 类型推断const ( // 常量组 a, b = 10, 100 c bool = false n = 5000 f = unsafe.Sizeof(b))

2020-09-18 20:51:25 134

原创 1-3 变量

1-3 变量代码实现package mainimport "fmt"func main() { var a string = "initial" //定义字符串 fmt.Println(a) var b, c int = 1, 2 //定义两个整型变量 fmt.Println(b, c) var d = true //定义一个布尔型变量 fmt.Println(d) var e int

2020-09-17 21:19:19 108

原创 1-2 数据类型与运算

1-2 数据类型与运算代码实现package mainimport "fmt"func main() { fmt.Println("go" + "lang") //字符串的"+"运算 fmt.Println("1+1 =", 1+1) //整型的"+"运算 fmt.Println("7.0/3.0 =", 7.0/3.0) //浮点的"运算" fmt.Println(true && fal

2020-09-17 20:54:46 263

原创 1-1 go语言的helloworld

1-1 go语言的helloworldgo的helloworld实现package main //使用main库import "fmt" //导入fmt包func main() { fmt.Println("hello world") //调用Println输出helloworld}代码解释:声明主包,在Go语言里面一个包是一组方法的集合引入基本的f

2020-09-17 20:43:05 1348

转载 [JavaScript]var let 和 const

转载声明:本文全文转载自后盾人 http://houdunren.gitee.io/note/js共同点var/let/const共同点是全局作用域中定义的变量,可以在函数中使用var hd = 'hdcms';function show() { return hd;}console.log(show());函数中声明的变量,只能在函数及其子函数中使用function hd() { var web = "后盾人"; function show() { consol

2020-07-07 22:38:55 570

原创 [KNN]基于numpy的曼哈顿距离实现

出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。在numpy中,曼哈顿距离可以这样表述distances = np.sum(np.abs(X_train[-1,1] - Y_test[-1,1]) + np.abs(X_train[-1,0] - Y_tes...

2020-02-28 23:50:59 3403 4

原创 C语言windows.h库的常用函数(四)

CopyFile函数用途CopyFile函数可以用来复制文件到指定目录。参数CopyFile("文件源目录","文件目标目录",TRUE or FALSE);其中第三个参数如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件会被覆盖掉。实例将D盘根目录1.txt复制到E盘根目录并命名为2.txt#include <windows.h>...

2020-02-24 15:57:36 7768 1

原创 [机器视觉] 基于opencv-python的单张图片中车道识别实现

项目背景本项目是笔者希望基于驾驶模拟类游戏 欧洲卡车模拟2(ETS2) 实现驾驶辅助系统的设想的一个基础项目 车道识别关于《欧洲卡车模拟2》《欧洲卡车模拟2》是一款模拟经营类游戏,在游戏中玩家要驾驶卡车完成货物运输任务,并可以购买更多的车库、卡车、挂车,从司机介绍所雇佣司机来为你工作,组建自己的物流公司。游戏中玩家可以改装自己的卡车、挂车的几乎每一个部件,从驾驶室到底盘到各种配件和内饰。穿越...

2020-02-23 23:11:11 1147

原创 MySQL修复记录--数据无损重装

背景在我修复了服务器安全漏洞之后,我发现web站点无法正常连接数据库。数据库备份点为15天前。操作系统 Windows server 2008数据库 mysql5.7.23异常状态首先连接数据库是报ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)首先是通过在my....

2020-01-28 14:07:16 264

原创 数据结构之队列、栈和链表(二)

2 栈2.1 什么是栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈这个概念比较浅显易懂,设想一个场景,我们经常会遇到...

2019-09-08 13:20:02 230

原创 C语言windows.h库的常用函数(三)

SetCursorPos函数用途SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置参数SetCursorPos函数拥有x和y两个整型参数,作为鼠标指针的坐标位置(其中0,0坐标对应屏幕左上角)示例#include<windows.h>int main(){int a=0;while(a<1000...

2019-09-07 21:57:44 13441 3

原创 数据结构之队列、栈和链表(一)

前言最近在学数据结构和算法方面的一些东西,毕竟算法才是编程的灵魂,在外面实习了一年,一直也是觉得自己的技术还十分有限,大概我就是那种没怎么打基础就开始撸项目的野生程序员吧,因为基础差所以经常在各种小问题上被难倒,回头来看看其实这都是大家踩过的坑,归根到底还是自己急于求成,所以就开始学一些基础,也为了以后回到学校继续学业做一些铺垫。此文章中代码参考了一本浅显入门的算法书 《啊哈,算法》1 队列...

2019-09-07 09:22:23 318

原创 微信机器人简单实现

现在网络上资源十分多样,当我们想要实现一个功能时,我们已经没有必要像前辈们那样来进行繁重的造轮子的工作。目前,多种多样的API将编程变得像搭积木一样简单,而多种多样的API也让我们的开发工作更加高效。今天突发奇想,想要在我的微信上放置一个聊天机器人,来代替我进行微信的回复。这里我用到的图灵机器人的API,之后基于itchat创建了一个Python脚本。脚本代码如下from wxpy ...

2018-07-21 13:43:51 6608 2

原创 C语言windows.h库的常用函数(二)

emmm,最近学校事务繁忙,所拖更一个多月,所以对不起各位读者,今天更新windows.h库常用函数的第二期,第三期也在准备中。GetCursorPos函数 在上一篇中的WindowFromPoint函数的示例代码中就已经用到了GetCursorPos函数,这是一个用于获取鼠标指针位置的函数。#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;windows.h&amp;...

2018-06-20 14:27:50 58770 19

原创 C语言 rand函数生成随机数

在实际的项目中,有时候需要生成一个随机数,在C语言中随机数的生成可以通过使用rand函数来实现。 rand函数包含在头文件stdlib.h里,因此使用rand函数需要声明包含stdlib.h。#include&lt;stdlib.h&gt;#include&lt;stdio.h&gt;int main(){ int i; for(i = 0; i &lt;10;i+...

2018-06-14 16:17:43 30766 5

原创 C语言 车辆出租管理系统

这个项目是我今年的C语言课设。做这个项目一个人大概用了一天的时间来完成,整体将近700行,量不是很多,所以也没用多文件什么的,当然也是采用了模块化设计的思路,在代码中写了几个函数来实现特定的功能。 以下是这个项目的一些要求和全部源码。一、软件开发目的该软件主要是使用C语言设计开发一个简单的车辆租赁管理系统,实现租赁信息的查询、修改、删除、添加以及订单的查询等功能。二、数据结构...

2018-06-13 22:10:35 11295 5

原创 C语言实现屏幕定位

用C语言写的应用一般都需要一个人机交互界面来实现用户对应用的操作,为了用户体验,这时候我们就需要设计一个友好的人机交互界面。而C语言怎么实现这个呢,这里就用到了windows.h,通过windows.h实现将光标移动到窗口的特定位置打印出字符,从而形成一个看上去还不错的UI。 具体代码如下:#include "stdafx.h"#include&lt;stdio.h&gt;#incl...

2018-05-20 12:37:48 4733 1

原创 C语言windows.h库的常用函数(一)

1:FindWindow函数该函数可以通过窗口类名或者窗口标题名来查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一个系统内部数据结构的引用。例如当你操作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在操作142号窗口,就此你的应用程序就能要求系统对142号窗口进行操作——移动窗口、改变窗口大小、把窗口最小化等等。实际上许多Windows...

2018-05-16 22:06:34 76054 13

原创 C语言键盘检测

在日常的应用里面,程序难免会跟用户进行互动,尤其是小游戏程序,需要实时的检测按键来判断用户的操作。那么,键盘检测如何通过代码实现呢。 下面这段代码是用来实现输入一个按键并输出对应按键ASCII码键值的程序。#include&lt;stdio.h&gt;#include&lt;conio.h&gt;#include"stdafx.h"int main(){ int key; ...

2018-05-15 15:11:58 18376 4

原创 CTF隐写术 欢迎来到地狱

解题地址 这是一道隐写术题,打开答题链接之后下载了一个压缩包。 将三个文件解压出来,发现word文档和第三个压缩包都是被加密的,所以只能从第一张图片入手 然而第一张图片无法打开,根据以往的经验,可以判断是jpg的文件头数据被修改了。所以使用winhex打开图片,恢复文件头。 jpg文件前12字节的十六进制数是 FF D8 FF E0 00 10 4A 46 49 46 00 0...

2018-04-04 17:44:15 5146

C语言 车辆出租管理系统

该软件主要是使用C语言设计开发一个简单的车辆租赁管理系统,实现租赁信息的查询、修改、删除、添加以及订单的查询等功能。

2018-06-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除