TCP 建立连接的三次握手 和释放连接的四次挥手 图解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下这两个过程。 TCP三次握手 所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发
分类: 其他 发布时间: 12-31 22:30 阅读次数: 0

C++中explicit关键字的作用

explicit用来防止由构造函数定义的隐式转换。 要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。 例如: class things { public: things(const std::string&name =""): m_name(name),height(0),weight(10){} int CompareTo(const things & other); st
分类: 其他 发布时间: 12-31 22:30 阅读次数: 0

C++宏定义的优缺点

一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,总是在此处产生一些困惑,在编程时误用该命令,使得程序的运行与预期的目的不一致,或者在读别人写的程序时,把运行结果理解错误,这对 C语言的学习很不利。 1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为
分类: 其他 发布时间: 12-31 22:29 阅读次数: 0

给定一个字符串,求出其最长的重复子串

题目:给定一个字符串,求出其最长的重复子串 如字符串abcdabcabcd,求的最长重复子串为abcd 代码: void LongChar(char* str) { if(str==NULL) return; int max=0; int first=0; int count=0; for(int i=1;i<strlen(str);i++) for(int k=0,j=0;j<strlen(str)-i;j++) { if(str[j]==str[i+j])k++; else k=0; if
分类: 其他 发布时间: 12-31 22:29 阅读次数: 0

memcpy函数 和 memmove函数 原码

原型:extern void *memcpy(void *dest, void *src, unsigned int count); 用法:#include <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。 说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。 举例: // memcpy.c #include <syslib.h> #include <string.h> main() { char *s="Golden Globa
分类: 其他 发布时间: 12-31 22:29 阅读次数: 0

C++#include 采用尖括号和采用引号的区别

如果你还看一些别的C++教程,那么你可能很早就发现了,有些书上的#include命令写作#include <文件名>,但有时候又会出现#include "文件名"。你会很疑惑,到底哪个是对的呢?为什么要有这两种不同的写法呢? 这两种写法都是正确的写法,但是它们却是有区别的。我们知道C++已经有一些编写好的头文件(比如标准函数库等等),它们存放在VC++的Include文件夹里。当我们使用#include <文件名>命令时,编译器就到这个文件夹里去找对应的文件。显然,用这种写法去包含一个我们自己
分类: 其他 发布时间: 12-31 22:29 阅读次数: 0

测试领域的学习和发展(我们都是温水的青蛙)

测试领域的学习和发展 ------其实我们处在测试领域中,就都如处在“温水中的青蛙一样” 最近很长一段时间都很忙,突然对自己最近的学习方法做个简单的总结,以及个人对测试发展的整个过程的一个分析,希望对大家有帮助 一、测试发展过程 我认为一般的测试过程发展:测试执行->测试用例撰写->自动化测试实现->测试流程与平台实现。 《1》测试执行阶段要求:1、会看文档(即会看测试用例)。2、有一定的业务知识。3、有一定的工作操作和仪器仪表使用技巧。 而在此过程中也许你对自动化测试有一定的认识,觉得自动化
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

static的作用(修饰函数、局部变量、全局变量)

static作用(修饰函数、局部变量、全局变量) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容 char a = 'A'; // global variable void msg() { printf("Hello\n"
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

C程序(进程)的内存布局

C程序(进程)的内存布局 #include <stdio.h> const int a = 10; //全局常量a int main(void) {   const int b = 20; //局部常量b   int* pa = (int*)&a;   int* pb = (int*)&b;   *pa = 30; //可以吗?能成功赋值吗?   *pb = 30; //可以吗?能成功赋值吗?   return 0; } 作为编程新手的我,有时候写程序难免会有种迷糊的感觉,虽然写着代码,但总觉
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

Go语言slice的本质-SliceHeader

今天最热的事情,莫过于微信7.0的发布,增加了短视频,优化了看一看等功能,本来想跟着个热度,蹭个流量,后来发现各位大佬都已经开始蹭了,就算了,还是谈谈Go语言(golang)吧,看来要成为一个合格的自媒体,还是不要矜持,任重道远啊。 前两天有朋友(Weelin
分类: 服务端 发布时间: 12-31 22:28 阅读次数: 0

Spring 注解驱动(一)基本使用规则

Spring 注解驱动(一)基本使用规则 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 一、基本使用 @Configuration @ComponentScan(basePackages = "com.github.binarylei", excludeFilters = {@Filter(type = FilterType.ANNOTATION, classes = {Controller.cla
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

Python&Selenium 数据驱动【unittest+ddt+Excel】

一、摘要 一般情况下我们为了更好的管理测试数据会选择将测试数据存储在Excel文件当中去,本节内容将展示给读者将测试数据存储在Excel文档中的案例。 二、创建存储测试数据的Excel 创建一个Excel文件TestData.xlsx,并将如下表格数据写入到Excel文件中,作为测试数据。 序号 搜索词 期望结果 1 北京 北京 2 上海 上海 3 广州 广州 三、封装解析Excel文件模块 要解析Excel文件,需要先给Python环境安装openpyxl模块,启动命令行,输入命令pip i
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

八 HTTP

1 HTTP协议: 什么是协议?双方在交互、通信的时候,遵守的一种规范、规则 HTTP协议:针对网络上的客户端与服务器端在执行http请求的时候遵守的一种规范。 版本: 1.0 请求数据,服务器返回后,将会断开连接 1.1 请求数据,服务器返回后,连接保持。除非服务器、客户端关掉。有一定的时间限制 2 演示客户端和服务器端通信 安装抓包工具:HTTPWatch(IE插件) 请求数据解析: 请求行:第一行 请求头: 请求体: 浏览器真正发送的数据,kye=value的形式 响应数据解析: 响应行
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

Vue系列之 => 组件中的data和methods

使用data 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 8 <title>Docume
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

C++ 根据操作系统版本调用不同的动态链接库

在操作数据库时遇到一个问题:win7 sp1上编译ADO程序,在win7 sp1以下版本不能运行,(Win7系统下需要的动态文件与XP系统的需要的动态链接库不一样。需要根据系统的版本加载动态链接库。) Win7 系统下: 需要的动态链接库 #import "MSADO15.DLL" rename_namespace("ADOWE") rename("EOF","EndOfFile") Win XP下 #import "msado60.tlb" rename_namespace("ADOWE")
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

Spring 注解驱动(二)WEB 注解开发

Spring 注解驱动(二)WEB 注解开发 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 一、基本使用 在 Servlet 3.0 时支持注解启动,不再需要 web.xml 配制文件。 1.1 Servlet 3.0 注解 Servlet 3.0 常用注解: @WebServlet @WebFilter @WebInitParam @WebListener @WebServlet("/hello") public
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

Python format格式化时使用‘’{‘’或者‘’}‘’

用format格式化时,如果其中要用到‘’{‘’或者‘’}‘’,需要进行转义,否则报错 {{ ,}}使用同样的符号实现转义,而不是‘/’
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

innodb_file_per_table - 转换为InnoDB

共享InnoDB / var / lib / mysql / ibdata1存储的问题 InnoDB表当前将数据和索引存储到共享表空间(/ var / lib / mysql / ibdata1)。由于共享表空间,一个InnoDB表的数据损坏可能导致MySQL无法在整个计算机上启动。修复InnoDB损坏可能非常难以执行,并且可能导致在修复过程中最初未损坏的表的数据丢失。 由于MySQL 5.5将使用InnoDB作为默认存储引擎,因此考虑继续利用/ var / lib / mysql / ibd
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

标签打印机抓包数据解析

一. TSC 以TSC 2406为例 打印机测试页 SIZE 101.3 mm, 36 mm DIRECTION 0,0 REFERENCE 0,0 OFFSET 0 mm SET PEEL OFF SET CUTTER OFF SET TEAR ON CLS BAR 401, 286, 406, 2 BAR 402, 84, 2, 203 BAR 401, 85, 406, 2 BAR 806, 84, 2, 203 BAR 407, 280, 394, 2 BAR 408, 90, 2,
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0

迷茫踌躇的2018,整装待发的2019

一、憧憬和期待 这一年从毕业到工作经历了很多,没毕业之前的各种憧憬和期待,到工作的迷茫和无奈。 从对PHP的认知的到现在的技术开发,上学时感觉良好的我到工作中的手忙脚乱。仿佛现实给了我重重的一击,每天起来镜子中的我是迷茫找不到未来的人生方向的屌丝小青年。没工作前憧憬着朝九晚五每天写写代码拿着很高的月薪和年薪,跟别人说起时是一份很多人崇拜并且体面的的工作,期待着未来几年后能够在所待的城市立足。然而这都是有足够技术资本的人才能享受的,并不是空想就可以达到,庆幸的是醒悟的还不算太晚。 二、残酷和现实
分类: 其他 发布时间: 12-31 22:28 阅读次数: 0