排序:
默认
按更新时间
按访问量

SCTP协议详解与实例

1.SCTP是什么?只要是接触过编程的人,当你问他传输层都有哪些协议?我想几乎很多人会说TCP,IP协议而很少有人知道SCTP(流控制传输协议)这个和上述俩个协议具有相同地位的协议。 SCTP提供的服务与TCP,UDP类似,或者甚至可以理解为其是TCP与UDP协议各自优点的组合后的产物。2.SC...

2016-03-31 18:24:13

阅读数:15335

评论数:3

muduo网络库脉络分析(2)

因为此篇博文是上篇博文的延续,所以读者在阅读此时最好能先去看一下muduo网络库脉络分析(1)Channel类其实在上篇博文讲完Acceptor类之后,我因该按照流程顺序接着讲TcpConnection类的,但是因为TcpConnection中包含一个很重要的类Channel类,之前讲时也都有设计...

2016-03-21 17:44:35

阅读数:1002

评论数:1

muduo网络库脉络分析(1)

去年看muduo网络库时没有总结博文,导致前段时间用muduo时发现好多东西都模模糊糊,于是就花时间又一次翻阅了muduo源码,并用此篇博文记录下其网络库整体脉络,以便是后来者入手起来更方便,同时也可用作自己以后复习的资料1.如何入手muduo库其实在这之前也没有尝试去分析一个网络库的总脉络,更没...

2016-03-21 13:54:42

阅读数:1569

评论数:4

解密:protobuf协议序列化后的变体

1.protobuf是干什么的protobuf为google公司出品,其全称为Protocol Buffers。关于其是什么网上一搜一大堆,但是初学者往往还是看的晕头转向。其实简单的概括protobuf的功能无非就是对结构化数据串行化。举个简单的小例子struct Person { int...

2016-03-18 20:15:10

阅读数:3953

评论数:1

栈溢出攻击的一次简单尝试

1.栈溢出的一个简单实例下面程序可能是那些接触C不久之后,可能会犯的一个数组越界导致缓冲区溢出的一个小例子#include <stdio.h> #include <unistd.h> #include <stdlib.h>void func(void) { ...

2016-03-10 00:38:37

阅读数:1182

评论数:1

利用ucontext.h中接口实现用户级别线程库

想必大家在初次接触多线程或多进程时一定会感觉这是多么的神奇!一个程序居然可以“同时”执行好多工作,此时你一定有一探其究竟的想法吧?可是无奈,这些都是内核中十分复杂的代码。对于初入计算机大门的我们,去看那些东西,的确有些困难。但是不用灰心,本篇博文我将为大家介绍一个由我自己实现的简单线程,代码也就1...

2016-01-07 17:54:02

阅读数:3153

评论数:5

自动注册工厂消灭switch-case

之前在代码重构书中有了解过java中的反射机制可以消除switch-case,详情可以参考这篇博客http://blog.csdn.net/wwh578867817/article/details/49309789。那么我们的C++有没有类似干掉switch-case的方法?1原始的工厂是如何创建...

2016-01-04 23:56:40

阅读数:1416

评论数:1

一个高效的异步日志

假如让你自己去写一个日志程序,我想最原始且简单的想法因该是,首先将要写入日志文件的内容转化为字符串,然后调用write系统调用将其写入文件。这种实现方法的确就是我们程序最原始的日志方法。这种做法无疑是十分低效的,那么如何让我们的日志能够高效起来呢?本篇博文就是要给大家分享一种高效的日志–异步日志1...

2015-12-27 19:42:12

阅读数:6150

评论数:3

fastcgi协议分析与实例

1.序言最近在用c++实现一个简易web服务器。在实现之前大体理了一下一个web服务器主要咋样实现。当时单纯的认为只需要将浏览器发来的http请求解析,找到对应的文件,然后给浏览器一个响应,把其要获取的文件发给它就完事。可是写了没几天就遇到了瓶颈。因为我们的浏览器并不能解析动态的php文件,那么如...

2015-12-19 00:50:01

阅读数:5374

评论数:6

浅析linux服务端socket编程

记得大一第一次接触linux服务端编程时,当时看的1.Socket接口socket接口用来创建一个套接字描述符,函数定义如下int socket(int domain,int type,int protocol); //成功返回文件描述符,失败返回-1参数介绍: .domain指定使用哪...

2015-12-01 00:46:46

阅读数:1465

评论数:4

muduo网络库中buffer的设计

1.为什么非阻塞网络编程中应用层buffer是必须的非阻塞I/O(在这里可以理解为非阻塞I/O加T/O复用)的核心思想就是避免将当前线程阻塞在I/O系统调用上,这样可以使我们的I/O线程只阻塞在I/O复用函数上(epoll_wait或poll,select)使其能够服务更多的连接socket那么如...

2015-11-03 16:41:45

阅读数:2604

评论数:0

linux下aio异步读写详解与实例

1.为什么会有异步I/Oaio异步读写是在linux内核2.6之后才正式纳入其标准。之所以会增加此模块,是因为众所周知我们计算机CPU的执行速度远大于I/O读写的执行速度,如果我们用传统的阻塞式或非阻塞式来操作I/O的话,那么我们在同一个程序中(不用多线程或多进程)就不能同时操作俩个以上的文件I/...

2015-09-27 10:43:56

阅读数:11623

评论数:0

EPOLL在ET模式下会被触发多次么?

前几天和同学一起讨论EPOLLONESHOT的作用,它的功能是这样的:对于注册了EPOLLONESHOT事件的文件描述符,操作系统最多触发其上注册的包括可读,可写,错误中的一个,且只触发一次 刚一看感觉EPOLLONESHOT咋么就是ET模式相对于LT模式的区别,反复理解之后发现原来ET和ONES...

2015-09-22 12:27:43

阅读数:2050

评论数:3

linux内核源码do_fork分析

我们都知道进程是linux内核中最为重要的一个抽象概念,那么我们平时在fork一个进程时,该进程究竟是咋么产生的呢? 本篇博文会浅谈一下在进程创建过程中扮演着重要角色的do_fork函数1.内核如何来抽象一个进程内核通过一个叫做task_struct的结构体来抽象一个进程该结构体的定义(以内核2...

2016-10-20 13:33:42

阅读数:1661

评论数:0

MySQL数据库对象管理

本篇博文会简单的介绍MySQL数据库对象的管理,其中会着重介绍其权限管理与字符集一.权限管理1.添加或修改密码对于MySQL我们可以通过mysqladmin来添加或修改密码 修改root用户密码为123456mysqladmin -uroot -p password '123456'2.创建一个...

2016-06-17 23:30:35

阅读数:1595

评论数:1

PHP-表单

1.PHP表单处理 PHP的超全局变量GET和_GET和_POST用于收集表单数据 一个简单的HTML表单如下<html> <head> <meta charset="utf-8"> </head> <body&...

2016-06-07 16:18:57

阅读数:644

评论数:0

PHP-超全局变量

PHP中许多预定义的变量都是“超全局的”,这意味着他们在一个脚本的全部作用域中都可用。在函数或方法中无需执行global $variable;也可以访问他们这些超全局变量为: .GLOBALS ._SERVER ._REQUEST ._POST ._GET ._F...

2016-06-06 19:13:57

阅读数:778

评论数:0

jQuery-AJAX

1.AJAX简介(1)什么是AJAX AJAX = 异步 javascript 和XML(Asynchronous JavaScript and XML) 简单的说在不重载整个网页的情况下,AJAX通过后台加载数据,并在网页上进行显示 即其可实现对网页进行部分加载与显示 (2)jQ...

2016-06-05 20:24:31

阅读数:492

评论数:0

jQuery-HTML

jQuery-获得内容和属性(1)jQuery中非常重要的部分,就是操作DOM的能力 jQuery提供了一系列与DOM相关的方法,这使访问和操作元素和属性变得很容易 DOM = Document Object Model(文档对象模型) DOM定义访问HTML和XML文档的标准 (2)...

2016-06-05 15:39:16

阅读数:667

评论数:0

jQuery效果

1.jQuery效果-隐藏和显示我们可以通过jQuery的hide()和show()方法来隐藏和显示HTML元素 语法如下 $(selector).hide(speed,callback); \$(selector).show(speed,callback); 其中speed参数为可选...

2016-06-05 02:07:50

阅读数:434

评论数:0

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