<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Dakuan_chen的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Dakuan_chen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Dakuan_chen]]></copyright><item><title><![CDATA[大数运算]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/76164684</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/76164684</guid><author>Dakuan_chen</author><pubDate>Wed, 26 Jul 2017 20:10:48 +0800</pubDate><description><![CDATA[计算机中的各种类型的数据都是有其表示上限的当进行很大的数据运算时可能产生溢出，这时就要用的大数运算 
大数运算是将数据保存在数组或者string，vector的容器中进行运算这样就可以进行几十位甚至上百位的运算#pragma once#include <string>
#include <iostream>
#include <unistd.h>
#include <stdlib.h>enum FL]]></description><category></category></item><item><title><![CDATA[基于HTTP和大数运算的在线计算器]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/76163939</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/76163939</guid><author>Dakuan_chen</author><pubDate>Wed, 26 Jul 2017 19:49:31 +0800</pubDate><description><![CDATA[**关于HTTP的具体的描述网上一大堆本文不在赘述#include "http.h"
int starup(const char* ip,int port)
{
    int sock = socket(AF_INET,SOCK_STREAM,0);
    if(sock < 0)
    {
        perror("socket");
        return -1;
    }]]></description><category></category></item><item><title><![CDATA[用shell脚本编写彩色进度条]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74964882</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74964882</guid><author>Dakuan_chen</author><pubDate>Tue, 11 Jul 2017 14:28:21 +0800</pubDate><description><![CDATA[以前写过一个C的Linux下的进度条这次用shell脚本编写进度条基本的逻辑与一起C的没有大的区别这次的中的放在彩色上 
可以用printf函数进行色块控制字背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色字颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:]]></description><category></category></item><item><title><![CDATA[Linux eval]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74230814</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74230814</guid><author>Dakuan_chen</author><pubDate>Mon, 03 Jul 2017 17:27:56 +0800</pubDate><description><![CDATA[1. eval command-line
其中command－line是在终端上键入的一条普通命令行。然而当在它前面放上eval时，其结果是shell在执行命令行之前扫描它两次。如：
pipe="|"
eval ls $pipe wc -l
shell第1次扫描命令行时，它替换出pipe的值｜，接着eval使它再次扫描命令行，这时shell把｜作为管道符号了。
如果变量中包含任何需要sh]]></description><category></category></item><item><title><![CDATA[set/multiset map/multimap hash_set/hash_multiset hash_map/hash_multimap 区别与联系]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74080723</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/74080723</guid><author>Dakuan_chen</author><pubDate>Sat, 01 Jul 2017 22:11:50 +0800</pubDate><description><![CDATA[set/multiset联系底层使用红黑树作为数据结构 
set/multiset 特性是所有元素都会根据元素键值自动排序，set/multiset元素的键值就是实值，实值就是键值。 
不能通过迭代器来修改set/multiset的实值因为他们的实值就是键值，修改后可能不满足其排列规则 
set/multiset拥有与list相同的某些性质：当客户对他的元素进行insert或erase是操作之前的所]]></description><category></category></item><item><title><![CDATA[Linux poll服务器]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73921004</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73921004</guid><author>Dakuan_chen</author><pubDate>Thu, 29 Jun 2017 17:43:45 +0800</pubDate><description><![CDATA[#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <poll.h>#define MAX]]></description><category></category></item><item><title><![CDATA[Linux epoll服务器、epoll、poll、select优缺点]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73920965</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73920965</guid><author>Dakuan_chen</author><pubDate>Thu, 29 Jun 2017 17:40:35 +0800</pubDate><description><![CDATA[epoll、poll和select优缺点select优点（1）select()的可移植性更好，在某些Unix系统上不支持poll()  
（2）select() 对于超时值提供了更好的精度：微秒，而poll是毫秒缺点（1）每次调用select，都需要把fd集合从用户态拷贝到内核态，这个开销在fd很多时会很大  
（2）同时每次调用select都需要在内核遍历传递进来的所有fd，这个开销在fd很多时也]]></description><category></category></item><item><title><![CDATA[Linux select服务器]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73864704</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73864704</guid><author>Dakuan_chen</author><pubDate>Wed, 28 Jun 2017 22:28:06 +0800</pubDate><description><![CDATA[select原理系统提供select函数来实现多路复用输入/输出模型。select系统调用是用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里等待，直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄，其实就是一个整数，我们最熟悉的句柄是0、1、2三个，0是标准输入，1是标准输出，2是标准错误输出。0、1、2是整数表示的，对应的FILE *结构的表示就是stdin、st]]></description><category></category></item><item><title><![CDATA[udp_server]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73741444</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73741444</guid><author>Dakuan_chen</author><pubDate>Mon, 26 Jun 2017 16:38:57 +0800</pubDate><description><![CDATA[#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>void usage(char* arg)
{
    printf("%s [server_ip]]></description><category></category></item><item><title><![CDATA[Linux线程池原理及C++实现]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73694159</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73694159</guid><author>Dakuan_chen</author><pubDate>Sat, 24 Jun 2017 19:17:55 +0800</pubDate><description><![CDATA[原理在多线程程序中如果频繁的创建和结束一个线程这样会使系统的性能降低，这时我们可以创建一个线程 池来完成这些任务执行完后让其阻塞等待其他的任务这样就可以提高系统的性能 
一个线程池要包括以下几部分 
1、线程池管理器（ThreadPool）：用于创建并管理线程池，包括 创建线程池，销毁线程池，添加新任务； 
2、工作线程（PoolWorker）：线程池中线程，在没有任务时处于等待状态，可以循环的执行]]></description><category></category></item><item><title><![CDATA[Linux套接字编程tcp_server]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73611794</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73611794</guid><author>Dakuan_chen</author><pubDate>Thu, 22 Jun 2017 22:34:45 +0800</pubDate><description><![CDATA[背景知识介绍socketsocket这个词可以表示很多概念: 在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端⼜⼝口号”就称为socket。网络字节序在两台主机进行通信时如果直接将网络上的数据拿来进行解析如果两台主机之间的字节序不同这样数据就会出错但是又不知道对方主机的字节序，所以就规定了网络字节序为大端接口介绍Linux提供了以下函数用来进行主机]]></description><category></category></item><item><title><![CDATA[tcp协议相关]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73499655</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73499655</guid><author>Dakuan_chen</author><pubDate>Tue, 20 Jun 2017 16:13:17 +0800</pubDate><description><![CDATA[TCP提供面向连接的服务，在传送数据之前必须先建立连接，数据传输结束后要释放连接。TCP不提供广播和多播服务。由于TCP提供可靠的、面向连接服务因此不可避免的增加了很多开销，如确认、流量控制、计时器以及连接管理等。这不仅使协议首部数据单元增大很多，还要占用很多处理机资源TCP可靠性表现1.基于请求应答机制 
2.保证报文按序到达 
3.丢包重传 
4.面向连接的——在操作系统中应该有对应的数据结构描]]></description><category></category></item><item><title><![CDATA[网络端口分类]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73331279</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73331279</guid><author>Dakuan_chen</author><pubDate>Fri, 16 Jun 2017 14:40:19 +0800</pubDate><description><![CDATA[网络通信的实质是两台主机上的进程进行通信，但是IP地址只能标识一台主机并不能标识主机上的进程这时就需要端口来标识主机上的进程也称做协议端口号，这种在协议栈层间抽象的协议端口是软件端口，和路由器或交换机上的硬件端口是完全不同的概念，硬件端口是不同设备之间进行交互的接口，而软件端口是应用层的各种协议进程与运输实体进行层间交互的一种地址端口的分类服务器使用的端口这里分为两类最重要的一类叫做数只端口号或者系]]></description><category></category></item><item><title><![CDATA[代理服务器 和NAT技术]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73188249</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73188249</guid><author>Dakuan_chen</author><pubDate>Tue, 13 Jun 2017 16:45:46 +0800</pubDate><description><![CDATA[一、代理服务器的概念及工作原理（一）代理服务器的概念　　随着Internet技术的迅速发展，越来越多的计算机连入了Internet。很多公司也将自己公司的局域网接入了Internet。如何快速地访问Internet站点，提高网络的安全性，成为了当今的热门话题。在这种情况下，代理服务器便应运而生了。 
　　1、代理服务器的概念　　 
　　代理服务器（Proxy Server）是个人网络和Interne]]></description><category></category></item><item><title><![CDATA[CRC检验与ARP脚本]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73006314</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/73006314</guid><author>Dakuan_chen</author><pubDate>Sat, 10 Jun 2017 20:18:42 +0800</pubDate><description><![CDATA[CRC（Cyclic Redundancy Cheek）循环冗余检验是目前在数据链路层广泛使用的检错技术 
Mac帧形式 
 
目前FCS多采用CRC 
CRC原理 
在K位信息码后再拼接R位的校验码，整个编码长度为N位，因此，这种编码也叫（N，K）码。对于一个给定的（N，K）码，可以证明存在一个最高次幂为N-K=R的多项式G(x)。根据G(x)可以生成K位信息的校验码，而G(x)叫做这个CRC码的]]></description><category></category></item><item><title><![CDATA[crond与crontab]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72933863</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72933863</guid><author>Dakuan_chen</author><pubDate>Fri, 09 Jun 2017 11:26:51 +0800</pubDate><description><![CDATA[crond的概念和crontab是不可分割的。crontab是一个命令，常见于Unix和类Unix的操作系统之中，用于设置周期性被执行的指令。该命令从标准输入设备读取指令，并将其存放于“crontab”文件中，以供之后读取和执行。该词来源于希腊语chronos(χρόνος)，原意是时间。而crond正是它的守护进程。 
cron是服务名称，crond是后台进程，crontab则是定制好的计划任务表]]></description><category></category></item><item><title><![CDATA[守护进程的创建过程]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72911422</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72911422</guid><author>Dakuan_chen</author><pubDate>Thu, 08 Jun 2017 11:11:42 +0800</pubDate><description><![CDATA[守护进程也称精灵进程（Daemon），是运行在后台的⼀一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是⼀一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。比如，Internet服务器inetd，Web服务器httpd等。同时，守护进程完成许多系统任务。比如，作业规划进程crond等 
Linux系统启动时会启动很多系统服务进程,这些系统服 务进]]></description><category></category></item><item><title><![CDATA[Huffman树的实现]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72885106</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72885106</guid><author>Dakuan_chen</author><pubDate>Tue, 06 Jun 2017 16:58:59 +0800</pubDate><description><![CDATA[假设给定一个有n个权值的集合{w1,w2,w3,…,wn},其中wi>0(1<=i<=n)。若T是一棵有n个叶结点的二叉树，而且将权值w1,w2,w3…wn分别赋值给T的n个叶结点，则称T是权值为w1,w2,w3…wn的扩充二叉树。带有权值的叶节点叫着扩充二叉树的外结点，其余不带权值的分支结点叫做内结点。外结点的带权路径长度为T的根节点到该结点的路径长度与该结点上的权值的乘积。n个外结点的扩充二叉树]]></description><category></category></item><item><title><![CDATA[堆的实现]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72884960</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72884960</guid><author>Dakuan_chen</author><pubDate>Tue, 06 Jun 2017 16:47:43 +0800</pubDate><description><![CDATA[如果有一个关键码的集合K = {k0，k1， k2，…，kn-1}，把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中，并满足：Ki<= K2*i+1 且 Ki<= K2*i+2(Ki >= K2*i+1 且 Ki >= K2*i+2) i = 0，1，2…，则称这个堆为最小堆(或最大堆)。 
大堆：根节点的关键字大于其他所有节点的关键字它的左右子树也满足这个性质 
小堆：根节点的关键字小]]></description><category></category></item><item><title><![CDATA[linux GDB 调试多进程多线程]]></title><link>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72877139</link><guid>https://blog.youkuaiyun.com/Dakuan_chen/article/details/72877139</guid><author>Dakuan_chen</author><pubDate>Tue, 06 Jun 2017 16:35:05 +0800</pubDate><description><![CDATA[在Windows下调试程序我们直接打断点F10，F11等键加上监事窗口的调试程序就很方便了，但是在Linux下并没有集成的开发调试环境这时就要用到GDB 
GDB常用调试命令 
l ist／l ⾏行号：显⽰示binFile源代码，接着上次的位置往下列，每次列10⾏行。 
list／l 函数名：列出某个函数的源代码。 
r或run：运⾏行程序。 
s或step：进⼊入函数调⽤用 
breaktrace]]></description><category></category></item></channel></rss>