- 博客(26)
- 资源 (7)
- 收藏
- 关注
原创 crond和crontab详解
一、crontab是什么? crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 Linux下的任务调度分为两类,系统任务调度和用户任务调度。 系统任务调度:系统周期性所
2017-06-08 16:16:35 50041 1
原创 epoll服务器小结
epoll简介: epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合
2017-06-30 09:28:10 297
原创 select详解
为了代码的简洁性首先将常用的函数进行了一次封装,分装了出错处理的内容 wrap.h#ifndef __WRAP_H_#define __WRAP_H_void perr_exit(const char *s);int Accept(int fd, struct sockaddr *sa, socklen_t *salenptr);int Bind(int fd, const struct s
2017-06-28 17:43:52 525
原创 TCP半关闭状态
当TCP链接中A发送FIN请求关闭,B端回应ACK后(A端进入FIN_WAIT_2状态),B没有立即发送FIN给A时,A方处在半链接状态,此时A可以接收B发送的数据,但是A已不能再向B发送数据。 从程序的角度,可以使用API来控制实现半连接状态。#include <sys/socket.h>int shutdown(int sockfd, int how);sockfd: 需要关闭的soc
2017-06-26 15:19:38 2770 1
原创 TCP定时器详解
TCP使用四种定时器(Timer,也称为“计时器”): 重传计时器:Retransmission Timer 坚持计时器:Persistent Timer 保活计时器:Keeplive Timer 时间等待计时器:Time_Wait Timer。重传计时器: 重传定时器:为了控制丢失的报文段或丢弃的报文段,也就是对报文段确认的等待时间。当TCP发送报文段时,就创建这个特定报文段的重传
2017-06-26 15:03:03 331
原创 TCP: SYN ACK FIN RST PSH URG 详解
TPC数据报格式 与UDP协议一样也有源端口号和目的端口号,通讯的双方由IP地址和端口号标识。4位首部长度和IP协议头类似,表示TCP协议头的长度,以4字节为单位,因此TCP协议头最长可以是4x15=60字节,如果没有选项字段,TCP协议头最短20字节。URG、ACK、PSH、RST、SYN、FIN是六个控制位SYN:同步标志 同步序列编号(Synchronize Sequence Num
2017-06-23 17:35:42 1259
原创 端口号的分类
一、什么是端口 计算机“端口”[1] 是英文port的义译,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。二、什么是端口号:1、什么是端口号 在一台主机上运行了多个服务,主机为了区分这些服务,所以给每个服务
2017-06-15 20:25:00 468
原创 NAT映射和代理服务器
一、NAT什么是NAT NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 这种方法需要在专用网连接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效
2017-06-15 17:33:32 7163
原创 ifconfig详解
[dasheng@localhost code]$ ifconfigeth0 Link encap:Ethernet HWaddr 00:0C:29:1E:FF:6B inet addr:192.168.246.128 Bcast:192.168.246.255 Mask:255.255.255.0 inet6 addr: fe80::2
2017-06-15 16:50:12 508
原创 crc校验详解
一、crc校验是什么? CRC即循环冗余校验码(Cyclic Redundancy Check[1] ):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。二、crc的原理是什么? 循环冗余校验码(CRC)
2017-06-15 16:01:48 7716 1
原创 图像处理重点总结
图像的概念: 是用各种观测系统,以不同形式和手段观测客观世界而获得的,可以直接或间接作用与人眼,进而产生的视觉实体。 图像:1. 连续表示 : 模拟图像 2. 离散表示:数字图像图像的基本单位: 像素邻域:表示像素间的关系, 四邻域: 八邻域:像素间距离: 1. 欧氏距离: ((x1^2-x2^2)+(y1^2-y2^2))^1/2 2. 城区距离:
2017-06-12 22:34:22 825
原创 链式栈的实现
vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStructLinkStack.h#include "StackNode.h"template<typename T> class LinkStack{public: LinkStack() :_pTop(NULL) {} ~LinkStack()
2017-06-08 22:34:13 559
原创 环形队列的实现
vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStruct CircleQueue.h#include<iostream>using namespace std;template<class T>class Queue{public: Queue(size_t size = 0) :_capacity(
2017-06-08 22:27:11 1112
原创 堆和优先级队列
搜索二叉树含迭代器 vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStructheap.h#include<iostream>#include<cassert>#include <vector>using namespace std;template<class T>struct Less{ boo
2017-06-08 21:37:26 344
原创 含迭代器的红黑树
搜索二叉树含迭代器 vs2013下编写的项目工程见 我的 github: https://github.com/excelentone/DataStruct#include<iostream>using namespace std;#include<cassert>enum COLOR{ RED, BLACK };template<class K, class V>struct RBT
2017-06-08 21:34:57 651
原创 搜索二叉树含迭代器
搜索二叉树含迭代器#include<iostream>#include<cassert>using namespace std;template<class K, class V>struct BSTNode{ BSTNode(const K& key=0, const V& value=0) : _pLeft(NULL) , _pRight(NULL) ,
2017-06-08 21:30:23 1026
原创 二叉树的面试题总结
二叉树的创建二叉树的高度二叉树某层节点的个数二叉树的镜像二叉树最远两个节点的距离二叉树的前中后层序递归非递归遍历判断二叉树是否是完全二叉树二叉树叶子节点的个数#include<iostream>#include<stack>#include<queue>using namespace std;template<class T>struct BinaryTreeNode{
2017-06-08 21:27:41 727 1
原创 网络安全重点总结1
第一章信息安全的三个目标 1.保密性 2. 完整性 3. 可用性 4. 合法使用网络安全的发展态势: 1. 计算机病毒层出不穷 2. 黑客对全球网络的恶意攻击石头逐年上升 3. 由于技术不完备,导致系统催在缺陷,漏洞 4. 世界各国军方在加紧进行信息战的研究 安全威胁可分为故意和偶然安全威胁来源 1. 信息泄露 2. 完整性破坏 3. 拒
2017-06-08 19:40:54 1189
原创 网络安全重点总结
第九章:PKIPKI的定义: PKI是一种遵循标准的利用公钥理论和技术建立的提供好安全服务的基础设施。PKI的目的: 从技术上解决网上身份认证、电子信息的完整性和不可抵赖性等安全问题,为网络应用提供可靠的安全服务PKI的任务: 确立可信任的数字身份 数字证书的概念: 数字证书实际上是一个计算机文件,该文件建立用户身份与期所持公钥的关系。数字证书的生成: 1
2017-06-07 21:28:04 6373
原创 守护进程详解
1. 守护进程是什么? 守护进程是在后台运行不受终端控制的进程(如输入、输出等),一般的网络服务都是以守护进程的方式运行。守护进程脱离终端的主要原因有两点: (1)用来启动守护进程的终端在启动守护进程之后,需要执行其他任务。 2. 守护进程的创建调用umask将文件模式创建屏蔽字设置为0.调用fork,父进程退出(exit ) 原因:1)如果该守护进程是作为一条简单的shel
2017-06-07 16:48:58 676
原创 day12 多路IO转接服务器
多路IO转接服务器也叫做多任务IO服务器。该类服务器实现的主旨思想是,不再由应用程序自己监视客户端连接,取而代之由内核替应用程序监视文件。 主要使用的方法有三种:selectselect能监听的文件描述符个数受限于FD_SETSIZE,一般为1024,单纯改变进程打开的文件描述符个数并不能改变select监听文件个数解决1024以下客户端时使用select是很合适的,但如果链接客户端过多,
2017-06-05 20:32:10 560
原创 volatile关键字详解
作用 volatile的作用是: 作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如如下程序:XBYTE[2]=0x55;XBYTE[2]=0x56;XBYTE[2]=0x57;XBYTE[2]=0x58; 对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器却会对上述四条语句进行优化,认
2017-06-05 18:31:00 920
原创 使用gdb调试多进程和多线程程序
默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。 follow-fork-mode detach-on-fork 说明 parent
2017-06-04 20:34:44 566
原创 牛客错题1
下面的说法那个正确?#define NUMA 10000000#define NUMB 1000int a[NUMA], b[NUMB];void pa(){ int i, j; for(i = 0; i < NUMB; ++i) for(j = 0; j < NUMA; ++j) ++a[j];}void pb(){ in
2017-06-04 18:28:28 696
原创 day11 soket编程之半关闭
当TCP链接中A发送FIN请求关闭,B端回应ACK后(A端进入FIN_WAIT_2状态),B没有立即发送FIN给A时,A方处在半链接状态,此时A可以接收B发送的数据,但是A已不能再向B发送数据。 从程序的角度,可以使用API来控制实现半连接状态。 #include <sys/socket.h>int shutdown(int sockfd, int how);sockfd: 需要关闭
2017-06-01 19:19:37 548
转载 浅谈多态
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定义
2017-06-01 16:25:09 467
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人