<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LP9127的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LP9127</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LP9127]]></copyright><item><title><![CDATA[HttpRunner功能梳理]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/79787391</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/79787391</guid><author>LP9127</author><pubDate>Mon, 02 Apr 2018 12:06:46 +0800</pubDate><description><![CDATA[一、HttpRunner的功能

1、JSON格式检测


作用：检测JSON格式的正确性
关键字：validate
格式：hrun --validate test.json
说明：其中test.json为json格式的文件名，并且可一次性指定多个文件


2、JSON格式美化


作用：美化JSON的格式，使得测试脚本便于维护和阅读
关键字：prettify
格式：hrun --prettify...]]></description><category></category></item><item><title><![CDATA[python实现杨辉三角]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/79645047</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/79645047</guid><author>LP9127</author><pubDate>Wed, 21 Mar 2018 20:01:12 +0800</pubDate><description><![CDATA[一、什么是杨辉三角 
 
如上图所示，一目了然 
二、用python实现杨辉三角 
 
说明：这里只打印10行哦 
测试用例： 


正在学习廖雪峰老师的python教程，大家有疑问可以访问教程链接生成器...]]></description><category></category></item><item><title><![CDATA[初识HttpRunner]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/79474137</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/79474137</guid><author>LP9127</author><pubDate>Sat, 10 Mar 2018 18:18:22 +0800</pubDate><description><![CDATA[一、简介

1、什么是HttpRunner 
一款面向http/https的通用自动化测试框架 
2、HttpRunner的功能 
自动化测试 
性能测试 
线上监控 
持续集成



二、安装

既然HttpRunner这么多好处，当然要迫不及待地试试啦~ 
1、安装环境 
centOS 6.5 
python 3.6 
说明：如何安装centOS 6.5，请老铁们参见VMware虚拟机下安装c...]]></description><category></category></item><item><title><![CDATA[让一个类只在堆/栈上创建对象]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/76572606</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/76572606</guid><author>LP9127</author><pubDate>Wed, 02 Aug 2017 10:55:58 +0800</pubDate><description><![CDATA[1、类创建对象的两种方式类创建对象有两种方式，一种是静态创建对象：A a;还有一种方式是动态建立A* pa=new A; 
这两种方式是不同的，第一种方式是为对象在栈上开辟空间，另一种方式是为对象在堆上开辟空间。2、如何让一个类只在堆上创建对象?想法一：如果只能在堆上创建对象的话也就意味着不能在栈上创建对象，而我们知道要创建对象必须调用类的构造函数，在这里有很多人就会想到将构造函数设置为私有的，这样]]></description><category></category></item><item><title><![CDATA[链表相交问题]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75268211</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75268211</guid><author>LP9127</author><pubDate>Mon, 17 Jul 2017 21:14:10 +0800</pubDate><description><![CDATA[1、判断两个链表是否有交点，假设不带环

问题描述：如果两个链表相交，则返回交点，如果不相交，则返回NULL 
解题思路一：（1）先求出两个链表的长度l1,l2 
                 （2）求出长度的差值k 
                 （3）让较长的链表先走k步，然后两个链表一起向后移动，如果有相等的节点，则说明链表相交 
                 当然还要考虑链表为...]]></description><category></category></item><item><title><![CDATA[链表带环问题]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75196065</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75196065</guid><author>LP9127</author><pubDate>Sun, 16 Jul 2017 10:26:28 +0800</pubDate><description><![CDATA[1、判断链表是否带环基本思路：定义两个指针，一个快指针，一个慢指针，快指针一次走两步，慢指针一次走一步，当两个指针重合的时候，说明该链表是带环的，当快指针为空或者快指针的下一个节点为空，说明是不带环的。 
代码实现/**
 * Definition of ListNode
 * class ListNode {
 * public:
 *     int val;
 *     ListNode *]]></description><category></category></item><item><title><![CDATA[const的用法总结]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75093191</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75093191</guid><author>LP9127</author><pubDate>Sat, 15 Jul 2017 15:06:50 +0800</pubDate><description><![CDATA[const在C和C++中有很多的用法，先将const的用法做如下总结。

1、const修饰变量

const修饰变量，可以使变量具有常属性，也就是该变量在以后的使用中其值都不能进行改变。



const a=10;
a = 20;//错误，不能修改]]></description><category></category></item><item><title><![CDATA[函数调用时的开销]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75062244</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75062244</guid><author>LP9127</author><pubDate>Thu, 13 Jul 2017 16:07:24 +0800</pubDate><description><![CDATA[问题引入在学习C语言时，老师强调过调用函数时会有开销，但是函数调用的开销体现在哪几个方面并不十分清楚！！举例说明写一个两数求和的代码，此代码中不调用函数#include <stdio.h>
int main()
{
    int a = 10, b = 20, c = 0;
    c = a + b;
    printf("%d\n", c);
    return 0;
}该程序对应的反汇编]]></description><category></category></item><item><title><![CDATA[求1~n的和]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75050915</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75050915</guid><author>LP9127</author><pubDate>Thu, 13 Jul 2017 13:40:16 +0800</pubDate><description><![CDATA[题目描述

实现1+2+3…+n，要求不能使用乘除法、循环、条件判断、选择相关的关键字。



思路

使用递归来解决这个问题



代码



#include &amp;lt;stdio.h&amp;gt;

int add(int n,int&amp;amp; sum)
{
    n &amp;amp;&amp;amp; add(n - 1,sum);
    return sum += n;

}

int main()
{
...]]></description><category></category></item><item><title><![CDATA[合并两个有序链表]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/75043063</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/75043063</guid><author>LP9127</author><pubDate>Thu, 13 Jul 2017 08:46:54 +0800</pubDate><description><![CDATA[描述

合并两个有序的单链表，使合并之后的结果仍然有序



样例

给出 1-&amp;gt;3-&amp;gt;8-&amp;gt;11-&amp;gt;15-&amp;gt;null，2-&amp;gt;null 
返回 1-&amp;gt;2-&amp;gt;3-&amp;gt;8-&amp;gt;11-&amp;gt;15-&amp;gt;null



代码



/**
 * Definition of ListNode
 * class ListNode {
 * publi...]]></description><category></category></item><item><title><![CDATA[Linux下的git配置]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/74850310</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/74850310</guid><author>LP9127</author><pubDate>Sat, 08 Jul 2017 18:49:11 +0800</pubDate><description><![CDATA[前言：最近学习了网络编程，想将自己的代码提交到git上进行托管，但是发现自己的Linux上并没有git，于是就进行了git的配置之路。



一点小插曲



一、查看自己是否已经安装过git？

输入 git –version 
如果已经安装了，就会显示git的版本信息 
 
如果没有安装就会输出 
“bash:git:command not found” 
如果没有安装就要进行下一步了。


...]]></description><category></category></item><item><title><![CDATA[Linux下的五种I/O模型]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/74004508</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/74004508</guid><author>LP9127</author><pubDate>Fri, 30 Jun 2017 16:14:23 +0800</pubDate><description><![CDATA[一、五种I/O模型1、阻塞I/O模型 
应用程序调用一个I/O函数，导致应用程序阻塞，等待数据，如果数据没有准备好，则一直阻塞，直到数据准备好，将数据从内核空间拷贝到用户空间，I/O函数成功返回。 
2、非阻塞I/O模型 
将套接口设置为非阻塞形式就是告诉内核，当所请求的I/O函数还没有准备好时，直接返回错误，而不让进程进入睡眠状态，此后，I/O函数不断地测试数据有没有准备好，如果数据没有准备好，则]]></description><category></category></item><item><title><![CDATA[TCP定时器]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73715417</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73715417</guid><author>LP9127</author><pubDate>Sun, 25 Jun 2017 12:38:49 +0800</pubDate><description><![CDATA[一、常见的四种TCP定时器 
1、超时重传计时器 
2、坚持计时器 
3、保活计时器 
4、时间等待计时器 
二、四个定时器的特点和应用场景 
1、超时重传计时器（Retransmission Timer） 
超时重传计时器：为了控制丢失的报文段，设置的一种定时器。发送端在将TCP报文发送出去之后会等待目标端对该报文的确认，此时等待的结果有两种：当超过定时器设置的时间还没有收到确认的话，则认为刚才发]]></description><category></category></item><item><title><![CDATA[TCP报头中的URG和PSH]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73695084</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73695084</guid><author>LP9127</author><pubDate>Sat, 24 Jun 2017 21:42:05 +0800</pubDate><description><![CDATA[一、URG 
紧急URG（URGent）当URG=1时，表明紧急指针字段有效。它告诉系统此报文段中有紧急数据，应该尽快传送，而不按照原来的排队序列来传送。 
当URG=1时，发送应用进程告诉发送方的TCP有紧急数据要传送，于是发送方的TCP就将紧急数据插入到本报文数据段的最前面，而在紧急数据后面的数据仍是普通数据。 
二、PSH 
推送（PuSH），当两个应用进程进行交互式的通信时，有时一端的应用进]]></description><category></category></item><item><title><![CDATA[端口]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73694944</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73694944</guid><author>LP9127</author><pubDate>Sat, 24 Jun 2017 21:17:47 +0800</pubDate><description><![CDATA[一、端口的概念 
端口是设备与外部通讯交流的接口，一般端口可以分为虚拟端口和物理端口，虚拟端口就是计算机或者交换机路由器内部的接口，一般不可见，而物理端口一般是可见的。 
二、端口的类型 
1、硬件端口 
CPU通过接口寄存器与外部设备进行数据传送，这些硬件寄存器就称为端口或者接口。 
2、软件端口 
一般指网络中面向连接（TCP）和无连接（UDP）的通信协议端口，包括数据I/O和缓冲区。 
（1）]]></description><category></category></item><item><title><![CDATA[路由算法]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73692500</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73692500</guid><author>LP9127</author><pubDate>Sat, 24 Jun 2017 16:19:13 +0800</pubDate><description><![CDATA[一、路由算法的基本概念 
1、什么是路由算法 
路由算法是提高路由协议功能，减少路由时开销的一种算法。它的目的是找到源路由器到目的路由器的最佳路径。 
2、设计路由算法时应考虑的因素 
（1）最优化 
路由算法必须能够在源路由器和目的路由器之间找到最优路径。 
（2）简洁性 
由于计算机物理资源有限，因此路由算法必须保证简洁，以减少软件和应用的开销。 
（3）坚固性 
当出现任何非正常或者不可预料的]]></description><category></category></item><item><title><![CDATA[NAT技术与代理服务器]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73500022</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73500022</guid><author>LP9127</author><pubDate>Tue, 20 Jun 2017 16:26:56 +0800</pubDate><description><![CDATA[一、背景知识之虚拟专用网VPN 
1、VPN的基本概念 
VPN（Virtual Private Network）是虚拟专用网，在介绍这个知识之前，先引入几个基础知识。 
（1）全球地址 
全球地址就是由因特网管理机构分配的全球唯一的IP地址。 
（2）专用地址 
基本概念：由于全球IP地址的短缺，再加上在同一机构内的主机很少需要和外部因特网上的主机进行通信，更多的是和同一机构内的主机进行通信，因此]]></description><category></category></item><item><title><![CDATA[ARP协议]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73469446</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73469446</guid><author>LP9127</author><pubDate>Mon, 19 Jun 2017 17:17:51 +0800</pubDate><description><![CDATA[一、理解ARP协议 
1、ARP协议的基本概念 
（1）ARP协议就是地址解析协议； 
（2）ARP协议是网络层的协议； 
（3）ARP协议的用途是从网络层的IP地址解析出在数据链路层的硬件地址； 
（4）每台主机都有一个ARP高速缓冲区，该缓冲区中存放了本局域网上各主机和路由器的IP地址到硬件地址的映射表。注意：该映射表经常动态更新。 
2、ARP协议的格式 
（1）格式如下图 
 
说明： 
（]]></description><category></category></item><item><title><![CDATA[CRC循环冗余校验]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73468706</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73468706</guid><author>LP9127</author><pubDate>Mon, 19 Jun 2017 16:19:39 +0800</pubDate><description><![CDATA[一、背景知识 
1、比特差错 
现实的通信链路都不会是理想的，因为比特在传输过程中可能产生差错：1可能变成0，0可能变成1，这就叫做比特差错。 
2、误码率 
在一段时间内，传输错误的比特占所传输的比特总数的比率成为误码率。误码率和信噪比有很大的关系，如果设法提高信噪比，就可以使误码率减小。 
3、为了保证数据传输的可靠性，在计算机网络传输数据时，必须采用个中差错检测措施，目前使用最广泛的就是CRC]]></description><category></category></item><item><title><![CDATA[子进程的异步等待方式]]></title><link>https://blog.youkuaiyun.com/LP9127/article/details/73302767</link><guid>https://blog.youkuaiyun.com/LP9127/article/details/73302767</guid><author>LP9127</author><pubDate>Thu, 15 Jun 2017 21:30:30 +0800</pubDate><description><![CDATA[通过之前所学的知识，我们可以了解到，通过wait函数或者waitpid函数可以清理僵尸进程，父进程可以通过两种方式等待子进程，一种是阻塞方式，另一种是非阻塞方式，而不管是那种方式，父进程都做不到完全不理会子进程而去完成自己的动作，即子进程不能达到异步等待的目的。 
一、SIGCHLD信号 
1、关于SIGCHLD信号 
子进程在终止时会给父进程发SIGCHLD信号，该信号的默认处理动作是忽略，父进程]]></description><category></category></item></channel></rss>