<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Damn_Yang的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Damn_Yang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Damn_Yang]]></copyright><item><title><![CDATA[浏览器种输入一个url会发生什么(全过程详解)]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/90727758</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/90727758</guid><author>Damn_Yang</author><pubDate>Sat, 01 Jun 2019 12:06:50 +0800</pubDate><description><![CDATA[1.首先，你要在浏览器中输入网址

2.浏览器查找域名的IP地址

浏览器会把输入的域名解析成对应的IP，DNS过程如下：

查找浏览器缓存：因为浏览器一般会缓存DNS记录一段时间，不同的浏览器的时间可能不一样，一般2-30分钟不等，浏览器去查找这些缓存，如果有华安村，直接返回IP，否则下一步
	查找系统缓存：浏览器缓存中找不到IP之后，浏览器会进行系统调用(windows中是gethostbyn...]]></description><category></category></item><item><title><![CDATA[C++11 lambda表达式]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/90668279</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/90668279</guid><author>Damn_Yang</author><pubDate>Wed, 29 May 2019 13:46:40 +0800</pubDate><description><![CDATA[1. C++98中的一个例子


在C++98中，如果箱鸦片对一个数据集合中的元素进行排序，可以使用std::sort方法。


#include &lt;algorithm&gt;
#include &lt;functional&gt;

int main()
{
	int array[] = { 4, 1, 8, 5, 3, 7, 0, 9, 2, 6 };  
	
	// 默认按照小于比较，...]]></description><category></category></item><item><title><![CDATA[C++11右值引用，移动语义，完美转发]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/89312097</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/89312097</guid><author>Damn_Yang</author><pubDate>Wed, 29 May 2019 11:37:35 +0800</pubDate><description><![CDATA[右值引用

1. 移动语义

如果一个类中涉及到资源管理，用户必须显式提供拷贝构造，赋值运算符重载以及析构函数，否则编译器将会自动生成一个默认的，如果遇到拷贝对象或者对象之间相互赋值，就会出错，比如：


class String 
{
public:    
	String(char* str = "") 
	{
		if (nullptr == str) 
			str = "";      ...]]></description><category></category></item><item><title><![CDATA[C++11新特性]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/89184295</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/89184295</guid><author>Damn_Yang</author><pubDate>Wed, 10 Apr 2019 15:26:32 +0800</pubDate><description><![CDATA[1. C++11简介


在2003年C++标准委员会曾经提交了一份技术勘误表(简称TC1)，使得C++03这个名字已经取代了C++98称为 C++11之前的最新C++标准名称。不过由于TC1主要是对C++98标准中的漏洞进行修复，语言的核心部分则没 有改动，因此人们习惯性的把两个标准合并称为C++98/03标准。从C++0x到C++11，C++标准10年磨一剑， 第二个真正意义上的标准珊珊来迟。...]]></description><category></category></item><item><title><![CDATA[数据链路层详解]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88675000</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88675000</guid><author>Damn_Yang</author><pubDate>Wed, 20 Mar 2019 12:37:49 +0800</pubDate><description><![CDATA[数据链路层

用于两个设备(同一种数据链路节点)之间进行传递

认识以太网


“以太网”不是一种具体的网络，而是一种技术标准；既包含了数据链路层的内容，也包含了一些物理层的内容，例如：规定了网络拓扑结构，访问控制方式，传输速率等；
	例如以太网中的网线必须使用双绞线；传输速率有10M，100M,1000M等
	
	以太网是当前应用最广泛的局域网技术，和以太网并列的还有令牌环网，无线LAN等；
	...]]></description><category></category></item><item><title><![CDATA[网络层——IP协议]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88661655</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88661655</guid><author>Damn_Yang</author><pubDate>Tue, 19 Mar 2019 18:03:46 +0800</pubDate><description><![CDATA[网络层

在复杂的网络环境中确定一个合适的路径。

IP协议

基本概念


主机：配有IP地址，但是不进行路由控制的设备

路由器：即配有IP地址，又能进行路由控制；

节点：主机和路由器的统称


协议头格式




4位版本号：指定IP协议的版本呢，对于IPV4来说，就是4.
	4位头部长度：IP头部的长度是多少个32bit，也就是length*4的字节数，4bit表示最大的数字是15，因此...]]></description><category></category></item><item><title><![CDATA[传输层——TCP详解]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88574619</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88574619</guid><author>Damn_Yang</author><pubDate>Tue, 19 Mar 2019 14:24:26 +0800</pubDate><description><![CDATA[TCP协议

TCP全称为“传输控制协议”。要对数据的传输进行一个详细的控制

TCP协议段格式



源/目的端口号：表示数据是从哪个进程来，到哪个进程去；
	32位序号：序号是可靠传输的关键因素。TCP将要传输的每个字节都进行了编号，序号是本报文段的数据组的第一个字节的编号，序号可以保证传输信息的有效性。比如：一个报文段的序号为300，此报文段数据部分共有100个字节，则下一个报文段的序号为4...]]></description><category></category></item><item><title><![CDATA[TCP三次握手和四次挥手详解，以及常考的面试题]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88636678</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88636678</guid><author>Damn_Yang</author><pubDate>Tue, 19 Mar 2019 13:56:31 +0800</pubDate><description><![CDATA[三次握手




第一次握手：建立连接时，客户端发送SYN包到服务器，并进入SYN_SENT状态，等待服务器确认。SYN:：同步序列编号
	第二次握手：服务器收到SYN包，必须确认客户端的SYN(即ACK)，同时自己也发送一个SYN包，即SYN+ACK包，此时服务器进入SYN_RECV状态
	第三次握手：客户端收到服务器的SYN+ACK包，向服务器发送确认包ACK，此包发送完毕后，客户端和服务器进...]]></description><category></category></item><item><title><![CDATA[传输层——UDP详解]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88571606</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88571606</guid><author>Damn_Yang</author><pubDate>Fri, 15 Mar 2019 14:16:12 +0800</pubDate><description><![CDATA[再谈端口号

端口号(port)标识了一个主机上进行通信的不同的应用程序

在TCP/IP协议中，用“源IP”，“源端口号”，”目的IP“，”目的端口号“，”协议号“这样一个五元组来标识一个通信(可以通过netstat -n查看)

端口号范围划分


0-1023：知名端口号，HTTP,FTP,SSH等这些广为使用的应用层协议，他们的端口号都是固定的
	1024-65535：操作系统动态分配的端...]]></description><category></category></item><item><title><![CDATA[计算机网络——应用层以及HTTP协议]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88398914</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88398914</guid><author>Damn_Yang</author><pubDate>Tue, 12 Mar 2019 17:33:44 +0800</pubDate><description><![CDATA[应用层

是七层OSI模型的第七层。应用层直接和应用程序接口并提供常见的网络应用服务。应用层也向表示层发出请求。应用层是开放系统的最高层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。

我们程序员写的一个个解决我们实际问题，满足我们我们日常需求的网络程序，都是在应用层。

协议

协议是一种约定。

socket api的接口，在读写数据...]]></description><category></category></item><item><title><![CDATA[简单的TCP网络程序，多线程多进程版本]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88383460</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88383460</guid><author>Damn_Yang</author><pubDate>Sun, 10 Mar 2019 21:15:23 +0800</pubDate><description><![CDATA[和连接中的UDP类似，实现一个简单的英译汉的功能https://blog.youkuaiyun.com/Damn_Yang/article/details/88382298

封装TCP socket

tcp_socket.hpp


#pragma once 
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdlib.h&amp;...]]></description><category></category></item><item><title><![CDATA[简单的UDP网络程序———实现一个简单的英译汉功能]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88382298</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88382298</guid><author>Damn_Yang</author><pubDate>Sun, 10 Mar 2019 19:52:54 +0800</pubDate><description><![CDATA[实现一个简单的英译汉的功能

备注：套接字的使用，在https://blog.youkuaiyun.com/Damn_Yang/article/details/88377815已经写过



封装UdpSocket

udp_socket.hpp


#pragma once
#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;st...]]></description><category></category></item><item><title><![CDATA[网络编程套接字socket]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/88377815</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/88377815</guid><author>Damn_Yang</author><pubDate>Sun, 10 Mar 2019 19:16:28 +0800</pubDate><description><![CDATA[预备知识

理解源IP地址和目的IP地址


在IP数据包头部中，有两个IP地址，分别叫做源IP地址，和目的IP地址


认识端口号


端口号(port)是传输层协议的内容

端口号是一个2字节16位的整数
	端口号用来标识一个进程，告诉操作系统。当前的这个数据要交给哪一个进程来处理
	IP地址+端口号能够标识网络上的某一台主机的某一个进程
	一个端口号只能被一个进程占用


理解 端口号 和 ...]]></description><category></category></item><item><title><![CDATA[计算机网络基础]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86573815</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86573815</guid><author>Damn_Yang</author><pubDate>Sun, 10 Mar 2019 13:44:29 +0800</pubDate><description><![CDATA[网络发展

独立模式：计算机之间相互独立

网络互联：多台计算机连接在一起，完成数据共享

局域网LAN：计算机数量更多了，通过交换机和路由器连接在一起

广域网WAN：将远隔千里的计算机都连在一起

认识&quot;协议&quot;

协议就是一种约定

计算机之间的传输媒介是光信号和电信号，通过频率和强弱来表示0和1这样的信息。要想传递各种不同的信息，就需要约定好双方的数据格式。

计算机生产厂商很多
	计算机操...]]></description><category></category></item><item><title><![CDATA[归并排序，各排序算法比较]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86544596</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86544596</guid><author>Damn_Yang</author><pubDate>Sat, 19 Jan 2019 16:20:22 +0800</pubDate><description><![CDATA[归并排序是建立在归并操作山的一种有效的排序算法，该算法是采用分治法的一个非常典型的应用。

基本思想：


将待排序的元素序列分成两个长度相等的子序列，对每一个子序列排序，然后将他们合并成一个序列。合并两个子序列的过程称为二路合并。


归并排序的核心步骤：

分组
	合并


代码实现：


#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#...]]></description><category></category></item><item><title><![CDATA[交换排序之冒泡排序和快速排序]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86541054</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86541054</guid><author>Damn_Yang</author><pubDate>Fri, 18 Jan 2019 17:33:54 +0800</pubDate><description><![CDATA[交换排序

利用交换元素的位置进行排序的方法称作交换排序

交换排序的特点是：将键值较大的记录向序列的尾部移动，键值较小的记录向序列的前部移动。

常用的交换排序的方法：冒泡排序和快速排序

冒泡排序

冒泡排序原理：冒泡排序其实就是从头开始对整个数列里面的元素进行两两对比，比较大的元素放到后面，接着进行对比，直到最大的一个元素被提取出来放到整个数列的最后。接着再对剩下的元素进行相同的操作，直到整...]]></description><category></category></item><item><title><![CDATA[选择排序之直接选择排序和堆排序]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86530835</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86530835</guid><author>Damn_Yang</author><pubDate>Fri, 18 Jan 2019 15:33:25 +0800</pubDate><description><![CDATA[选择排序

基本思想：每一次从待排序的数据中选出最小(或最大)的一个元素，存放在序列的起始位置，直到全部待排序的数据元素排完。

直接选择排序


在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素
	若它不是这组元素中的最后一个(第一个)元素，则将它与这组元素中的最后一个(第一个)元素交换
	在剩余的array[i]--array[n-2]（array[i+1]-...]]></description><category></category></item><item><title><![CDATA[插入排序之直接插入排序和希尔排序]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86524253</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86524253</guid><author>Damn_Yang</author><pubDate>Thu, 17 Jan 2019 20:10:56 +0800</pubDate><description><![CDATA[插入排序：

基本思想：


每一步将一个待排序的元素，按其排序码的大小，插入到前面已经排好序的一组元素的合适位置上去，直到元素全部插完为止。


直接插入排序

当插入第i(i&amp;gt;=1)个元素时，前面的array[0],array[1],...,array[i-1]已经排好序，此时用array[i]的排序码与array[i-1],array[i-2],...的排序码顺序进行比较，找到插入位置...]]></description><category></category></item><item><title><![CDATA[哈希表的基本操作--拉链法]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86523744</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86523744</guid><author>Damn_Yang</author><pubDate>Thu, 17 Jan 2019 14:26:08 +0800</pubDate><description><![CDATA[HashTableBucket.h


#pragma once

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;string.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;assert.h&amp;gt;
#include &amp;lt;time.h&amp;gt;
//typedef char* HTBKeyType;
//typedef c...]]></description><category></category></item><item><title><![CDATA[哈希表的基础操作--开放定址法]]></title><link>https://blog.youkuaiyun.com/Damn_Yang/article/details/86509992</link><guid>https://blog.youkuaiyun.com/Damn_Yang/article/details/86509992</guid><author>Damn_Yang</author><pubDate>Wed, 16 Jan 2019 16:37:05 +0800</pubDate><description><![CDATA[HashTable.h


#pragma once

#include &amp;lt;stdio.h&amp;gt;
#include &amp;lt;assert.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;
#include &amp;lt;time.h&amp;gt;

typedef int HTKeyType;
typedef char HTValueType;
//枚举哈希表中每一个数据的三种状态
ty...]]></description><category></category></item></channel></rss>