自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Webber's blog

沧海一粟

  • 博客(32)
  • 收藏
  • 关注

原创 Python 深入剖析SocketServer模块(二)(V2.7.11)

五、Mix-In混合类昨天介绍了BaseServer和BaseRequestHandler两个基类,它们只用与派生,所以贴了它们派生的子类代码。今天介绍两个混合类,ForkingMix-In 和 ThreadingMix-In,两者分别实现了核心的进程化和线程化的功能,如前面简介中所提,作为混合类,它们与服务器类一并使用以提供一些异步特性,Mix-in 这个类必须首先实现,因为它重写了定义

2016-09-06 14:29:21 1580

原创 Python 深入剖析SocketServer模块(一)(V2.7.11)

一、简介(翻译) 通用socket server 类 该模块尽力从各种不同的方面定义server: 对于socket-based servers: -- address family:    - AF_INET{,6}: IP socket (default)    - AF_UNIX: Unix domain sockets    - others

2016-09-05 17:13:24 1413

原创 python 反射

反射的简单含义:     通过方法名得到未知的方法(方法名不确定),实现调用。     即:当我们需要执行对象的某个方法,或是需要对对象的某个字段赋值时,而方法名或是字段名在编码代码时并不能确定,需要通过参数传递字符串的形式输入。下面是一个小例子:     # -*- coding:utf-8 -*-__author__ = 'webber'import timeclass

2016-08-02 16:21:24 460

原创 ICMP控制报文协议

1、引言ICMP经常被认为是IP层的一个组成部分。它传递差错以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。ICMP报文是在IP数据报内部被传输的,它封装在IP数据报内。ICMP报文的格式如图所示。所有报文的前4个字节都是一样的,但是剩下的其他字节则互不相同。类型字段可以有15个不同的值,以描述特定类

2016-06-13 11:10:12 701

原创 CentOS6.5升级内核从2.6.32到3.2.14

由于最近想要在服务器上跑IOU,但是在部署VMware后发现不能正常启动,总是提示内核无法载入,什么C header files matching your running kernel were not found.之类的,网上google了各种方法,两天没有解决,后来觉得可能是内核版本太低或者真的是需要重新编译一下现有的内核,没办法,只能尝试升级内核。      目前的内核版本 uname

2016-06-12 11:25:17 640

原创 Unix环境高级编程——守护进程记录总结(从基础到实现)

一、概念及其特征    守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。    在这里,我们在Linux2.6内核的centos中,ps -ef |awk '{print $1"\t "$2"\t "$3"\t  "$

2016-05-02 20:32:51 666

原创 八大排序的python实现

以下是八大排序的python实现,非亲写,但一一测试通过,供以后参考一、插入排序#-*- coding:utf-8 -*-'''描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元

2016-04-12 21:43:24 445

原创 MySQL集群搭建

在集群中的所有主机上安装提供集群功能的软件包官网上下载的  mysql-cluster-gpl-7.3.12-linux-glibc2.5-x86_64.tar.gz规划了5台服务器,10.10.22.123~10.10.22.127   其中,123、124做数据节点,125做管理节点,126、127做SQL节点。一、准备工作:service mysql stopmhkcon

2016-04-07 15:43:27 417

原创 从2016年蘑菇街暑期实习笔试的一点感悟

昨天完成了蘑菇街的在线笔试(个人第一次参加互联网公司在线笔试),个人感觉这大半年来看书的效果还是有一定效果的,最起码基础选择题、以及技术问答题上还是说的过去,但是凡是涉及到算法、各种排序以及数据结构方面的东西还是有很大障碍,这是接下来一段时间要补习的,但是,目前来看,最最最重要的是最后的编程题目,因为非计算机专业出身,有的时候可能又急于求成,没搞懂最基础的东西就去上项目、看框架,这导致忽略了基础的

2016-04-01 23:09:39 1065

原创 Linux启动流程

第一步:加载BIOS当打开服务器电源时,系统会先加载BIOS信息,计算机必须先找到它,并通过BIOS程序去加载CMOS的信息,再通过CMOS内的设置值取得主机的各项硬件配置,例如CPU与接口设备的通信频率、启动设备的查找顺序等等。在此之后,计算机才知道它接下来应该去找哪个硬件设备。 第二步:读取MBR我们知道,硬盘上第0磁道第一个扇区被称为MBR,即Master Boot Re

2016-03-30 14:16:25 312

原创 Unix环境高级编程---信号

参考博客:http://blog.csdn.net/alex_my/article/details/394941291. 信号概念 何为信号?信号是一种软中断,可以由以下情形触发: -1: 用户按下某些终断键,例如ctrl + C ,这可以停止一个失去控制的程序。(ctrl + D并不是发送信号,而是抛出一个            EOF 结束符,使程序

2016-03-23 19:12:33 376

原创 Unix环境高级编程—进程关系

终端登录网络登录进程组getpgrp(void)setpgid(pid_t pid, pid_) 会话: 是一个或多个进程组的集合,通常由shell的管道将几个进程编成一组。setsid(void)getsid(pid_t pid) 会话建立过程,简述:     其中,xinetd守护进程在监听到有客户端请求ssh连接后,fork一个子进程x

2016-03-20 12:17:00 354

转载 如何学习CCIE

想想自己拖了这么久,也没考试,也没积极去做实验,心里也有怨念,其实一直是方法不对,今天心里产生共鸣,后悔当初。转载地址:http://bbs.hh010.com/thread-467553-1-1.html第一式:破书式互联网的知识是很广泛的,即使所谓搞技术的老鸟,也很难说知其1%,何况知识更新的速度是很快的;单在思科公司涉及的领域便包括了数几十种介质、数100种接口、链路

2016-03-19 09:43:24 980

原创 Unix环境高级编程—进程控制(三)

一、解释器文件解释器文件属于文本文件,起始行形式为:#! pathname[optional-argument] 我们创建一个只有一行的文件如下:#!/home/webber/test/echoall.c  foo然后通过进程fork一个子进程execl寻找到这个文件路径下,我们将看到的是/home/webber/test/echoall.c 作为第一个参数被传了进

2016-03-17 21:09:17 330

原创 Unix环境高级编程—进程控制(二)

一、函数wait和waitpid今天我们继续通过昨天那个死爹死儿子的故事来讲(便于记忆),现在看看wait和waitpid函数。#includepid_t wait(int *statloc); pid_t waitpid(pid_t pid , int *statloc , int options);  若成功,返回进程ID,若出错,返回0或-1 wait系列函数的作用就

2016-03-14 21:45:17 447

原创 _THROW 何解?

在看/usr/include/........中.h头文件对函数接口的定义时,总是能看到在函数结尾加一个_THROW,一时不明白这是什么意思,而且对于有些POSIX和ISO C不承认或未明确的定义的函数不加_THROW,注释中也会特别说明,该函数不会抛THROW,所以查了一下,这是一个宏定义,是在GNU下的特色。在头文件#include 中定义:# if !defined __cplu

2016-03-14 14:33:22 1061

原创 Unix高级环境编程—进程控制(一)

一、函数fork#includepid_t  fork(void)                                                                    子进程返回0,父进程返回子进程ID,出错返回-1     fork函数被调用一次,返回两次。先返回父进程还是子进程是不确定的,取决于内核使用的调度算法。    子进程和父进程

2016-03-13 22:08:21 504

转载 ifndef/define/endif 和 #ifdef 、#if 作用和用法

为了能简单的看看某些linux内核源码,复习了一下c语音,今天汇总了一下关于宏定义的相关内容:一、ifndef/define/endif用法:.h文件,如下:#ifndef XX_H#define XX_H...#endif这样如果有两个地方都包含这个头文件,就不会出现两次包含的情况 。。因为在第二次包含时 XX_H 已经有定义了,所以就不再 include

2016-03-11 21:13:06 637

原创 内存MCE错误导致暴力扩充messages日志 以及chattr记录

由于放假,好久没登过服务器,今天登上服务器查看日志意外发现:/var/log/messages文件竟然被撑到20多个G!!!赶紧查看是什么情况,首先,20多个G的文件根本无法查看,因此,我想到了split拆分文件,然后再细化查看,命令如下:split -b 1024m messages mesg_tmp其中,split命令-b选项可以识别的单位为m、k,即将messages文件切割成每块1

2016-03-07 18:27:45 2644

原创 TCP的四种定时器简单记录

TCP管理的4个不同的定时器:1.重传定时器:用于当希望收到另一端的确认。2.坚持定时器:使窗口大小信息保持不断流动。3.保活定时器:检测TCP空闲连接的另一端何时崩溃或重启。4.2MSL定时器:测量一个连接处于TIME_WAIT状态的时间。MSL(报文段最大生存时间) 重传定时器:规定:第一次发送后所设置的超时时间为1.5秒,之后为3、6、12、24、48、多个64秒

2016-03-06 16:43:27 942

原创 TCP交换数据流——Nagle算法简单记录

Nagle算法:     该算法提出的目的是想解决网络中大量的小的TCP数据包造成网络拥塞的问题,举个例子,当客户端要发送一个字节的TCP数据包到服务器时,我们实际上产生了41字节长的分组:包括20字节的IP首部,20字节的TCP首部以及1个字节的数据。这被称为微小分组。这种情况下,有效传输通道的利用率只有1/40 。      Nagle算法要求一个TCP连接上最多只能有一个未被确认的未

2016-03-03 14:36:48 332

原创 设计TCP服务器的规则

设计TCP服务器,采用如下规则:1.正等待连接请求的一端有一个固定长度的连接队列,该队列中的连接已被TCP接受(完成三次握手),但还没有被应用层接受。注意:TCP接受一个连接是将其放入这个队列,而应用层接受连接是将其从该队列中移出。也就是使用***.accept()函数来阻塞等待客户的请求。2.应用层指明该队列的最大长度,这个值被称为“积压值(backlog)”,范围为0~5。也就是使用*

2016-03-02 22:19:12 395

转载 TCP/IP状态详解

今天犯懒了,本来自己也做了一些相应的笔记,但是发现这篇写的更好一些,简单易懂,而且有图有真相,为了方便以后查看,在此转载了,在此基础上加了自己的笔记TCP正常建立和关闭的状态变化  TCP连接的建立可以简单的称为“三次握手”,而连接的中止则可以叫做“四次握手”。 建立连接 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一

2016-03-01 22:17:27 332

原创 DNS--域名系统 随笔

定义:是一种用于TCP/IP应用程序的分布式数据库。(分布式数据库:指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储节点上,以提高存储性和并发访问性。)      从应用的角度上看,对DNS的访问是通过一个地址解析器来完成,在Unix主机中,该解析器主要是通过两个库函数g

2016-02-26 21:47:50 436

原创 广播、多播和IGMP的一点记录

广播和多播:仅应用于UDP  广播分为:  1.受限的广播(255.255.255.255)                        2.指向网络的广播(eg:A类网络 netid.255.255.255)主机号为全1的地址3.指向子网的广播:主机号为全1且有特定子网号的地址4.指向所有子网的广播:(eg: 128.1.255.255 而subnet mask为 255.25

2016-02-25 21:57:02 1108

原创 Python--多线程

首先,说明一下多线程的应用场景:当python处理多个任务时,这些任务本质是异步的,需要有多个并发事务,各个事务的运行顺序可以是不确定的、随机的、不可预测的。计算密集型的任务可以顺序执行分隔成的多个子任务,也可以用多线程的方式处理。但I/O密集型的任务就不好以单线程方式处理了,如果不用多线程,只能用一个或多个计时器来处理实现。      下面说一下进程与线程:进程(有时叫重量级进程),是程序的

2016-01-28 22:57:21 496

原创 CentOS6.5安装MySQL5.6 过程记录

刚开始,还不太懂,直接上了MySQL5.7版本的二进制安装,结果遇到了各种问题,从5.6到5.7还是做了很大改变的,比如mysql_install_db的文件位置变更到了/bin文件下等等,觉得现在用新版本不太合适,就改到了尝试5.6的安装,下面是两种安装的方法记录。    一、RPM安装        RPM安装属于二进制安装的一种,这是一种别人已经编译好的二进制文件,我们可以拿来经过自

2016-01-13 14:16:00 598

原创 从symbol link和hard link 到 unlink函数的一点记录

之前一直对Linux的文件类型中的 “l” 类型的了解不是很深入,最近经过“圣经”指点,略知一二,在此先记录一下,以便以后查阅,之后会对文件和目录、文件I/O这部分再扩充。    首先需明确,Unix在查阅文件类型时,首先调用的是stat函数,格式如下:   int  stat(const char *restrict pathname , struct stat *restrictb

2015-12-20 19:34:58 944

原创 Unix环境高级编程第三版中实例代码如何在自己的linux上运行的问题

学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结果发现gcc不成功,百度了一下发现很多解决的帖子,但是都是基于第二版的,很多帖子都提到要进入apue.2e目录,然后修改Make.defines.linux文件,将里面的WKDIR改为自己当前的工作目

2015-12-15 19:32:46 1482

转载 总是想把Linux服务器上的重要文件备份到本地,在此转一篇实现windows和linux互传文件的文章

由于学校的Linux服务器有好几个人同时使用,而且都知道root密码,所以总是想把Linux服务器上的重要文件备份到本地,在此转一篇实现windows和linux互传文件的文章

2015-11-08 16:26:32 665

原创 初学shell,今天遇到由wget下载到本地的网页源代码的乱码问题,无聊的写了一个转码的脚本

今天用wget想下载文件,结果下载了一堆本地的index.html文件,一查看全是乱码,然后百度了一下,网页的编码格式大概有三种:1、utf-82、gb23123、gbk要在网页源码中的下的属性的设置中查看 charset  对应的属性值。而我的centos的操作系统只识别utf-8格式的,由环境变量LANG保存的配置,我们可以查看一下 echo $LANG  ,系统返回的是:

2015-10-27 20:39:54 2955

原创 初学shell,为了练习sed,写了个简单的批量修改文件名的脚本,后来执行时发现系统竟然自带有一个rename命令,顺便也记下了

1 #!/bin/bash  2   3 批量修改文件名的脚本  4 2015/10/24  5 webber  6 Comment  7 ARGS=2  8 ONE=1  9 if [ $# -ne "$ARGS" ];then 10   echo "传参错误!!" 11   exit 2 12 fi 13 14 num=0 15 16

2015-10-24 20:22:57 508

空空如也

空空如也

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

TA关注的人

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