自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 自动化测试微信小程序学习笔记(一)

自动化测试微信小程序学习笔记(一)一、微信打开X5调试模式、手机设置开发者模式1.微信打开X5调试模式2.打开开发者模式二、Edge浏览器打开调试页面一、微信打开X5调试模式、手机设置开发者模式1.微信打开X5调试模式 首先微信任意对话框输入:debugtbs.qq.com,点击后 根据提示进入:debugmm.qq.com/?forcex5=true,点开 然后再回去点:debugtbs.qq.com 这个链接就发现打开的页面不一样了,出来tbs调试页,点击:“安装线上内核”按钮,安装完成后,

2021-04-23 16:33:51 243

原创 Python编程练习

#古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?i=1k=0def f(n): if n==1 or n==2: return 2 return f(n-1)+f(n-2)i=1while i>=1 and i<=24: if i==1 or i==2: prin...

2019-12-24 17:14:40 232

转载 Python学习笔记(3)

一、Python运算符1、算术运算符幂**:返回x的y次幂print 2**3print 2**4#结果816取整除\\:取整除,返回商的整数部分(向下取整)print 9//2print -9//2#结果4-52、Python的成员运算符...

2019-12-20 16:45:08 1204

转载 Python的学习笔记(2)Python的基础

一、变量类型以下为与C基础不同的注意点在python中还允许用r''表示单引号中的内容默认不转义。示例如下:print("hello world\n")print(r'hello world\n')运行结果如下:hello worldhello world\n如果字符串中有很多要换行的,需要写很多\n,不好阅读,python允许用'''...'''的格式表示多行内容。示...

2019-12-20 15:21:05 318

原创 Python学习笔记(1)之python的基本语法

一、python的输入和输出1、python的输出使用print()加字符串可以在屏幕中输出指定的字符串,如下print("Hello World")print()函数可以接受多个字符串输出,中间用逗号隔开,遇到逗号会输出一个空格,故以下输出结果会连成一句话。print('The quick brown fox', 'jumps over', 'the lazy dog')...

2019-12-20 11:21:25 246

原创 C语言的静态存储方式和动态存储方式

从变量的作用域角度可以对变量进行分类为【全局变量】和【局部变量】从变量值的生存期可以对变量进行分类为【静态存储方式】和【动态存储方式】用户的存储空间可大致分为以下三种1、程序区2、静态区3、动态区一、 静态存储1、基本概念静态存储方式:指在程序运行时,给变量分配固定的存储空间的方式2、 静态存储区存放以下变量:全局变量:在程序开始执行时给全局变量分配存储区,程序运行...

2019-12-19 14:04:47 8678

转载 关于怎样解决安装TOAD时报错:No valid Oracle clients found. You need at least one 64-bit client properly configur

关于怎样解决安装TOAD时报错:No valid Oracle clients found. You need at least one 64-bit client properly configured.问题:安装了toad for oracle12.12后,当打开软件时显示该错误。2. 原因:没有安装64位oracle客户端。3. 解决办法:(1)下载安装toad for oracle 12....

2019-06-24 19:12:16 8984

转载 TCP/UDP的套接字Socket通信工作流程

套接字是一种通信机制,凭借这种机制,客户/服务器系统的开发工作既可以在本地单机上进行,也可以跨网络进行,Linux所提供的功能(如打印服务,ftp等)通常都是通过套接字来进行通信的,套接字的创建和使用与管道是有区别的,因为套接字明确地将客户和服务器区分出来,套接字可以实现将多个客户连接到一个服务器。套接字,也称为BSD套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的...

2018-04-18 11:43:32 8843

转载 Linux vi中查找字符内容的方法

使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容。这时,使用查找功能尤为重要。方法如下:1、命令模式下输入“/字符串”,例如“/Section 3”。2、如果查找下一个,按“n”即可。要自当前光标位置向上搜索,请使用以下命令:/pattern Enter其中,pattern表示要搜索的特定字符序列。要自当前光标位置向下搜索,请使用以下命令:?p...

2018-04-16 11:29:21 3297

原创 关于在Linux下上传代码至Github

这里所说的上传代码指的是获取ssh key等所有的工作已经完成 打开要上传代码的目录,首先运行一下命令,看ssh是否能成功连接:$ssh -T git@github.com如果出现以下字符串“xxxxx’ve successfully authenticated, but GitHub does not provide shell access ”。(其中的xxx表示你的用户...

2017-09-04 19:08:27 521

原创 关于如何将windows上代码上传至github中

将window下的代码上传至github我们将Git和github配置完之后,现在就来托管我们的项目吧,刚才我们已经在github上面创建了一个叫hello的仓库,那么我们现在就在本地创建一个目录,来管理这个仓库。 a) 随意创建了一个目录叫mygit-Corrine的目录: b) 右击目录,出现的菜单中有Git Bash Here,点击它。 c) 这时候就在这个目录上打开了我们的终端

2017-09-03 20:42:25 3738

原创 Linux下搭建Git服务器

在 Linux 下搭建 Git 服务器 环境: 服务器 CentOS6.6 + git(version 1.7.1) 客户端 Windows10 + git(version 2.8.4.windows.1)① 安装 Git Linux 做为服务器端系统,Windows 作为客户端系统,分别安装 Git服务器端:#yum install -y git安装完后,查看 Git 版本[root

2017-09-03 15:38:34 365

原创 linux脚本编程之shell实现彩色进度条

一.shell语法一.shell语法1shell中printf()的使用shell中printf()的使用printf的默认输出没有换行,换行需要自己加“\n” printf的默认输出没有换行,换行需要自己加“\n”.printf支持格式化输出,要不怎么能叫printf呢.printf支持格式化输出,要不怎么能叫printf呢 下面通过几个例子来实现printf的"输出"下面通过几个例子来实现

2017-07-07 18:47:15 586

原创 linux脚本语言之shell 中的eval

一.关于eval一.关于eval功能说明:eval的作用是再次执行命令行处理,也就是说,对一个命令行,执行两次命令行处理功能说明:eval的作用是再次执行命令行处理,也就是说,对一个命令行,执行两次命令行处理 语法:eval[参数]语法:eval[参数] 补充:eval可以读取一连串的参数,然后再依照参数本身的特性来执行补充:eval可以读取一连串的参数,然后再依照参数本身的特性来执

2017-07-07 11:20:46 1373

原创 linux网络编程之多线程多进程服务器与进程线程池

一.实现tcp服务端多进程编写#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>#include<sys/types.h>#include<arpa/inet.h>#include<string.h>#include <netinet/in.h>static void usage(const char* proc){

2017-07-06 15:09:12 668

原创 高级I/O之多路转接poll

一.关于poll与select使用三个位图来表示三个fdest的方式不同,poll是用一个pollfd指针来实现的这样做的解决了select处理文件描述符有上限的缺陷,,但是随着数量过大性能也会下降。和select函数一样,poll返回后,需要轮询pollfd来获取就绪的文件描述符。poll函数 fd:文件描述符 events :关心的事件 revevts :发生事件的数据

2017-07-03 16:34:19 285

原创 高级I/O之多路转接epoll

一.关于epoll函数1.什么是epoll是为了处理大量的句柄而作了改进的poll。被公认为linux2.6下性能最好的多路I/O就绪通知方式。2.epoll函数epoll函数与select函数其中一个不同点是epoll分别用三个函数来实现多路转接的功能,而select函数用一个函数实现。 - epoll_creat() 作用:创建一个epoll模型,返回的是epoll模型句柄 参数:

2017-07-03 15:54:02 303

原创 高级I/O之多路转接select

一.关于I/O要提高网络服务服务器,提高I/O性能,本质上是在提高“等”的比重,“等”的比重趋于零,性能越好,而I/O中为了减少等的比重,可以让I/O一次等多个文件描述符,即I/O模型中的多路复用模型,本文则讨论的是多路复用之select模型二.select函数1.select函数的作用系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态

2017-06-29 12:55:15 301

原创 linux网络编程之udp套接字

一 .关于udp1.udp的概述udp的全称是用户数据报协议,他和tcp协议一样用于处理数据包,是一种无连接面向数据报的传输层协议,由于udp不提供对数据的分组,组装和不能对数据进行排序的缺点,导致udp在数据发完之后,不能确认数据是否完全到达,但是udp又有着在资源消耗少,传输效率高的优点。由于udp本身的缺点,导致其在网络差的环境下会发生严重丢包现象,故其适用于音频,视频,普通数据的传送,偶尔丢

2017-06-26 22:48:31 488

原创 linux网络编程之服务器

基于tcp协议的网络程序1.所用函数:socket函数 socket()打开一个网络端口,如果成功,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上首发数据,如果调用出错返回-1bind函数: 服务器程序所监听的网络地址和端口号通常是固定不变得,客户端程序得知服务器程序的地址和端口后就可以向服务器发起连接,因此需要调用bind()绑定一个固定的

2017-06-23 17:19:31 393

原创 linux网络编程之tcp的三次握手和四次挥手

一 .tcp协议的通信tcp的通信过程分为三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道下图为tcp的通信过程示意图: 建立tcp连接通道:三次握手 断开tcp连接通道:四次挥手二.详解三次握手和四次挥手三次握手建立连接:第一次握手:客户端发送tcp报文到服务器,其中syn标志位1,seq=x(x为A的初始序列号,随机数),然后启动计时器,等待接收服务器的应答。该报文段成为SY

2017-06-20 15:29:21 971

原创 linux网络编程之TCP定时器

TCP的四种定时器重传计时器:Retransmission Timer坚持计时器:Persistent Timer保活计时器:Keeplive Timer时间等待计时器:Time_Wait Timer。重传计时器 为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传计时器,可能发生两种情况:若在计时器超时之前收到对报文段的确认,

2017-06-20 09:43:10 398

原创 TCP协议中的URG和PSH标志位的区别

一.tcp协议1.tcp协议的段格式如下图:2. tcp协议中的六个标志位及其含义:URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。ACK 置1时表示确认号()为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。 PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。 RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。

2017-06-20 08:07:13 2434

原创 linux网络编程之端口分类调研

一.端口的概念在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线器、交换机、路由器上用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口

2017-06-19 16:38:11 617 1

原创 linux网络编程之NAT技术与代理服务器调研

一.NAT技术概念NAT技术:(Network Address Translation,网络地址转换),当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所

2017-06-19 16:16:47 1090

原创 linux之ARP脚本

一.ARP协议地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互

2017-06-18 16:24:34 556

原创 linux之CRC校验

一.CRC的定义CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。二.工作原理循环冗余校验码(CRC)的基本原理是:在K位信息码

2017-06-12 14:54:06 990

原创 linux基础之守护进程

一.守护进程(Daemon)1.关于守护进程守护进程,顾名思义,也就是专门守护一个进程的进程。守护进程的职责就是专门确保被指定的进程的运行。 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端,并且周期性的执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程,linux的大多数服务器就是用守护进程实现的。比如:Internet服务器inetd。Wed服务

2017-06-09 07:30:48 760

原创 Linux计划任务cron

一.关于crondcrond的作用 crond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有 要执行的工作便会自动执行该工作。而Linux任务调度的工作主要分为以下两类:系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮

2017-06-07 18:03:14 484

原创 linux基础之gdb调试多进程,多线程

一.gdb常用目录表 操作 描述 l 命令相当于list,从第一行开始列出源码 回车 重复上一次命令 break +行号 设置断点 break+函数名 在函数的入口点设置断点 r 运行程序running的简写 into break 查看断点信息 n 单语句执行 ,next的简写 c 继续运行程序,continue的简写 bt

2017-06-07 12:37:30 447

原创 智能指针(续)

一. 存在问题上文到第三种智能指针shareptr,但是此指针也存在很多的问题若传入文件类型指针FILE *,则delete不能释放;引用计数的处理不是线程安全的循环引用问题二.解决方法若传入文件类型指针FILE *,则delete不能释放; 解决方法:特化 class Fclose{public: void operator()(FILE*

2017-05-22 15:51:07 208

原创 AVL树

一. AVL树概念一棵AVL树具有以下性质: 1.它的左右子树都是AVL树。 2.左子树和右子树高度之差(简称平衡因子)的绝对值不超过(-1,0,1)。二.平衡化旋转1.左单旋(右右->左):在较高右子树的右侧插入新节点,则用左单旋情况一:(如下图) 情况二: 情况三: 情况四: 2.右单旋(左左->右):在较高左子树的左侧插入新节点,用右单旋 3.先左后右双旋 (左右):在较高左

2017-05-22 15:45:32 237

原创 C++基础之智能指针

一.智能指针的引入:1. 当类中有指针成员时,一般有两种方式来管理指针成员:一是采用值型的方式管理,每个类对象都保留一份指针指向的对象的拷贝;另一种更优雅的方式是使用智能指针,从而实现指针指向的对象的共享。2. 智能指针(smart pointer)的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象的指

2017-05-20 16:58:42 232

原创 linux笔记之初次接触信号

一.关于信号概念1.信号是Linux所使用的进程间通信的最古老的方式。它是在软件层次上对中断机制的一种模拟,是一种异步通信的方式 。一个完整的信号周期包括三个部分,信号的产生,信号在进程中的注册,信号在进程中的注销,执行信号处理函数。如下图所示:这里的对信号产生注册和注销都是信号的内部机制,而不是信号函数完成的2.对信号的处理动作有三种:a. 忽略此信号b.执行该信号的默认处理动作c.捕捉信号(自由

2017-04-12 22:07:09 498 2

原创 全角和半角的区别及使用方式

一.什么是全角什么是半角?一、什么是全角和半角? 1. 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。 汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。 2. 半角:是指一个字符占用一个标准的字符位置。半角占一个字节。 半角就是 ASCII 方式的字符

2017-04-09 21:11:06 45174

原创 VMware Workstation cannot connect to the virtual machine 解决方案

今天 打开虚拟机 忽然遇到这个问题: VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and access all directories for tempo

2017-04-06 22:59:27 1033

原创 linux笔记之实现线程的信号量

一.关于信号量的相关接口定义一个信号量sem_t sem;初始化信号量 “p”操作 “v”操作 二.用生产者-消费者模型来实现信号量的相关接口代码如下#include<stdio.h>#include<pthread.h>#include<semaphore.h>#define SIZE 64sem_t blanks,datas;int queue[SIZE];void* Produ

2017-04-06 22:51:41 234

原创 死锁产生的原因以及避免死锁的算法

一.死锁的概念在多道程序系统中,虽可借助于多个进程的并发执行,来改善系统的资源利用率,提高系统的吞吐量,但可能发生一种危险━━死锁。所谓死锁(Deadlock),是指多个进程在运行中因争夺资源而造成的一种僵局(Deadly_Embrace),当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进。一组进程中,每个进程都无限等待被该组进程中另一进程所占有的资源,因而永远无法得到的资源,这种现象

2017-03-31 23:23:58 8433

原创 linux笔记之条件变量

一.概念:同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。通俗来讲,互斥只是实现了安全问题,而有的时候,它并不高效,所以在此引出了条件变量,它可以用来实现高效。互斥锁和条件变量分别用来实现互斥和同步,是一对黄金搭档。二.涉及的函数创建一个条件

2017-03-31 21:27:03 1845

原创 c++基础值链表基本操作

SeqListD.cinclude”SeqListD.h”void InitList(PNode* pHead) { assert(pHead); *pHead=NULL; } Node *BuyNode(DataType data) { Node pNewNode=(Node)malloc(sizeof(Node)); if(pNewNode

2017-03-29 22:15:52 595

空空如也

空空如也

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

TA关注的人

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