- 博客(34)
- 资源 (16)
- 收藏
- 关注
转载 理解 Linux 网络栈(1):Linux 网络协议栈简单总结
1. Linux 网络路径1.1 发送端1.1.1 应用层(1) Socket应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从层次上来说,它位于应用层,是操作系统为应用程序
2016-11-07 17:01:42
1839
转载 深度解析RabbitMQ集群——超大规模高可用OpenStack平台核心技术深入解析系列高级篇(三)
编者按:OpenStack已经在很多大型企业里支撑起核心生产业务,这都源于OpenStack中的核心技术与架构,超大规模高可用OpenStack平台核心技术深入解析系列文章,主要介绍了EasyStack在企业级OpenStack一线实践中的所见所感,将分为消息队列篇,计算篇,存储篇,网络篇等等,每篇中的内容都以基础、高级划分,将OpenStack落地最后一公里实打实所遇到的问题分享给大家。
2016-11-05 16:37:35
2406
转载 OPENSTACK的可伸缩架构的基础:RPC——超大规模高可用OpenStack核心技术深入解析系列
作者:石奎 EasyStack高级架构师编者按:OpenStack已经在很多大型企业里支撑起核心生产业务,这都源于OpenStack中的核心技术与架构,超大规模高可用OpenStack平台核心技术深入解析系列文章,主要介绍了EasyStack在企业级OpenStack一线实践中的所见所感,将分为消息队列篇,计算篇,存储篇,网络篇等等,每篇中的内容都以基础、高级划分,将OpenSta
2016-11-05 14:10:34
1164
转载 消息队列基础 RabbitMQ与AMQP协议详解——超大规模高可用OpenStack核心技术深入解析系列(二)
编者按:OpenStack已经在很多大型企业里支撑起核心生产业务,这都源于OpenStack中的核心技术与架构,超大规模高可用OpenStack平台核心技术深入解析系列文章,主要介绍了EasyStack在企业级OpenStack一线实践中的所见所感,将分为消息队列篇,计算篇,存储篇,网络篇等等,每篇中的内容都以基础、高级划分,将OpenStack落地最后一公里实打实所遇到的问题分享给大家。
2016-11-05 14:07:34
1081
原创 mysql性能浅述——罗列所有表
1.表引擎mysql内部提供了支持查看表信息的sql语句:show create table xxxx, 其中会列出表的引擎。但是,我们这里采用另外的一种方式:每个表文件都会存在frm文件,其描述了对应的表文件的相关信息,包括引擎类型(具体的信息参考链接:http://dev.mysql.com/doc/internals/en/frm-file-format.html):
2015-11-15 22:51:21
811
转载 php obstart 详解
PHP ob_start() 函数介绍php ob_start 与 ob_end_flush() 是 php 的缓冲输出函数。ob_start([string output_callback])- 打开输出缓冲区,所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。 ob_end_flush - 结束(发送)输出缓冲区的内容,关
2015-11-12 23:47:35
1352
原创 php的exec命令中关于空格路径的问题
在PHP编码过程中,有时候会用exec执行第三方程序,其中会遇到路径中带有空格的场景:$exe_file = "c:/test test/sqlite.exe";$data_file = "c:/test/data.lst";exec("\"".$exe_file."\""." \"".$data_file."\"", $output, $ret);开始执行的时候会报告 c:/te
2015-11-11 22:09:38
3018
原创 php multiple cookie问题
在项目开发过程中,曾经有段时间负责系统认证的公共接口的编写,在这个过程中遇到了似曾相识的问题。那就是在session_start 和session_write_close 频繁的调用过程中会导致客户端的请求数据失败,原因是频繁的session_start/close接口的调用, 导致了返回的http头被很多的set-cookie 信息覆盖掉了,引发http头其他内容写不进去了,继而导致了客户遇到的
2015-11-08 22:34:35
532
原创 ThreeMergeOne迭代项目经验
在面临需求众多,短时间无法完成所有功能且交付用户的话,迭代的开发方式就是我们的首选开发方式:主要功能排前,次要功能排后,而且迭代一完成后立马在线更新,交付用户使用。我所在的公司是一家七层网络供应商,基于第三方厂家硬件的七层软件开发的性质,前段时间公司在TMO中就采用了迭代的开发方式。由公司的产品属性决定了迭代开发的产品的交付属性,相比互联网公司快速迭代(那是真正的快速)开发、快速上线、快速交付
2015-10-31 16:30:43
730
原创 ThreeMergeOne项目总结
这个项目可以算是从进公司到现在,经历过历时最长、人力投入最多,也是自己反思最多的一个项目。虽然并非项目经理,但也或多或少也总结了一下个人自我管理方面的些许经验,总结出来,给往后以借鉴1.情绪管理这个项目中发现自己的脾气见涨。任务多的时候、别人咨询低级问题的时候、测试确认实现方案的时候,内心总是无法抑制住那股火,导致说话打声、脾气暴躁。其实后边反思一下发脾气的最终原因,反而落到自己的身上
2015-10-31 13:57:29
602
原创 浅谈php项目开发的总结
谈到php,相比大家都知道,php没有数据类型的概念,是一种相对c++来说,定义宽松的语言。从事类似php这么高级语言的开发,能够让研发人员真正的从编程的细枝末节中跳出来,真正解放了程序猿,使其更多考虑架构、编程方式方法的问题。真正完整的接触php的开发是从今年年初开始。之前使用php,都是在给客户解决产品问题的过程中。前段时间项目接近尾声,才对php有了比较充分的了解。一下总结项目开发中遇到
2015-10-31 12:39:24
4738
转载 列表元组字典
python中,有3种内建的数据结构:列表、元组和字典。1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目。列表中的项目应该包括在方括号中,这样python就知道你是在指明一个列表。一旦你创建了一个列表,你就可以添加,删除,或者是搜索列表中的项目。由于你可以增加或删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的。
2014-12-02 20:29:25
962
转载 python的struct
浅析Python中的struct模块 最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结。 了解c语言的人,一定会知道struct结构体在c语言中的作用,它定义了一种结构,里面包含不同类型的数据(int,char,bool等等)
2014-12-02 20:26:22
756
转载 utf8编码介绍
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码
2014-12-02 20:24:37
1023
转载 图解DHCP的4步租约过程
图解DHCP的4步租约过程 DHCP租约过程就是DHCP客户机动态获取IP地址的过程。DHCP租约过程分为4步:①客户机请求IP(客户机发DHCPDISCOVER广播包);②服务器响应(服务器发DHCPOFFER广播包);③客户机选择IP(客户机发DHCPREQUEST广播包);④服务器确定租约(服务器发DHCPACK/DHCPNAK广播包)
2014-02-21 19:26:39
2568
原创 mysql 开启用户远程操作权限
如果我们想开启mysql root用户远程操作的权限,需要操作一下几步1.确认mysql的配置文件my.ini 或者my.cnf配置文件中注释掉了bind_address=127.0.0.1这个配置项(#表示行注释)。修改之后重启mysql服务。2.GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "yourpass
2014-02-14 12:30:21
1459
转载 MYSQL 数据库引擎对比
Memory引擎: Memory存储引擎是专为非交易型应用,高速存取数据,数据100%的存在内存中永远不会写入磁盘。因此适用于临时的,需要频繁读写,对性能速度要求严格的应用中。 Merge引擎: MERGE存储引擎将两个或两个以上的共同结构的MyISAM表行程一个单表。不支持事务,能有效地管理大型数据集。 MyISAM引擎:
2012-11-26 11:03:53
2158
转载 MYSQL 数据库引擎
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎: ISAM:ISAM是一个定义明确且历经时间考验
2012-11-26 10:57:52
2507
转载 mysql 数据库之archive存储引擎札记
政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计。 那些管理着海量数据仓库的企业官员常常得回答诸如“何人何时修改了什么”或者“何人何时查看了什么”这样的提问。那些拥有数以千计的员工,开展着不计其数 的业务的企业,每天都会产生出大量的日志记录数据,而且必须将其好好保存。为了帮助数据库专家应对数据爆炸的挑战,MySQL5.0引入了一种新的数据存 储引擎,叫做Archive。这个先进的
2012-11-26 10:33:26
1570
转载 mysql之repair table 修复表札记
REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name[,tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]REPAIR TABLE用于修复被破坏的表。默认情况下,REPAIR TABLE与myisamchk --recovertbl_name具有相同的效果。REPAIR TABLE
2012-11-26 10:31:45
15873
原创 小心翼翼
alloca函数是模拟realloc alloc函数在栈上分配空间,调用alloca的函数在返回后,分配的空间会被自动释放,函数的声明如下: void * __cdecl alloca(size_t);注意: 1:alloca不具有可移植性,在不存在传统堆栈的机器上无法实现 2:不能将alloca函数的返回值进行传递,因为空间是在栈上分配的 3:缺乏可移植性
2012-07-13 09:27:41
616
转载 freopen重定向函数
函数名:freopen声明:FILE *freopen( const char *path, const char *mode, FILE *stream );所在文件: stdio.h参数说明:path: 文件名。mode: 文件打开的模式。和fopen中的模式(如r, w,)相同。stream: 一个文件,通常使用标准流文件(stdin, stdout, stderr)
2012-05-16 19:44:09
2163
转载 Socket I/O模型之完成端口(completion port)
“完成端口”模型是迄今为止最为复杂的一种I/O模型。然而,假若一 的是,该模型只适用于Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候,而且希望随着系统内安装的CPU数量的增多,应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型。要记住的一个基本准则是,假如要为Windows NT或Windows 2000开
2012-05-04 11:20:57
800
转载 Socket I/O模型之重叠I/O(overlapped I/O)--完成例程方式
C++代码// write by larry // 2009-8-20 // This is a server using overlapped IO(completion routine). #include "stdafx.h" #include #include #pragma comment(lib, "ws2_32.lib") #def
2012-05-04 11:20:24
1226
转载 Socket I/O模型之重叠I/O(overlapped I/O)--事件通知
C++代码// write by larry // 2009-8-20 // This is a server using overlapped IO(event notify). #include "stdafx.h" #include #include #pragma comment(lib, "ws2_32.lib") #define PO
2012-05-04 11:19:28
890
转载 Socket I/O模型之事件选择(WSAEventSelect)
WSAEventSelect和WSAAsyncSelect模型类似,它也允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。对于WSAAsyncSelect模型采用的网络事件来说,它们均可原封不动地移植到事件选择模型上。在用事件选择模型开发的应用程序中,也能接收和处理所有那些事件。该模型最主要的差别在于网络事件会投递至一个事件对象句柄,而非投递至一个窗口例程。服务器端代码
2012-05-04 11:18:25
936
转载 Socket网络编程之WSAAsyncSelect模型
使用异步选择模型,应用程序可在一个套接字上,接收以Windows消息为基础的网络事件通知。具体的做法是在建好一个套接字后,调用WSAAsyncSelect函数。服务器端代码: C++代码// write by larry // 2009-8-20 // This is a server using WSAAsyncSelect model. #include
2012-05-04 11:17:37
1290
转载 Socket 网络模型之Select篇
C++代码// write by larry // 2009-8-20 // This is server using select model. #include "stdafx.h" #include #include #define PORT 5150 #define MSGSIZE 1024 #pragma comment(li
2012-05-04 11:16:21
1029
转载 freopen 的使用
使用的调试环境为gdb, 编译器为gcc,g++。(服务器就是用的这个)每当做ACM题目的时候都是写好程序然后运行,输入题目中所给的测试数据,但是调试往往不是一次两次就能解决问题的。一般的题目还行。遇到像 Web Navigator 这样的有大量的输入的题目就头痛了。而freopen函数就提供了一种非常简单的解决方法。函数名:freopen声明:FILE *freopen(
2012-05-02 12:00:19
1165
转载 网络字节序与主机字节序
不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序 最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian 最符合人的思维的字节序 地址低位存储值的低位 地址高位存储值的高位 怎么讲是最符合人的思维的字节序,是因为从人的第一观感
2012-05-02 09:47:09
577
原创 快速排序之按主元分块新方法(值得一看)
int partition(int* array, int p, int r){ srand((unsigned)time(NULL));//注册随机种子 int temp = rand() % (r - p + 1);//得到随机
2011-08-04 19:25:52
828
原创 求对策字符串的最大程度
之前看了许多博客对于对策字符串求最大长度的解决方法以及相应的程序,但是最后在实际环境实际测试的时候就会出现问题,无法准确测试其中对策字符串的最大长度。所以经过本人的研读最后自己写了一个算法,现在列举如下: int countMax(const string str)
2011-07-29 09:40:05
1025
原创 未来科技
随着现在云计算的兴起,以及各大IT公司的纷纷加盟,我们可以些许预见将来的计算机和网络的发展方向,也许将来电脑不在是电脑客户端不再这么重要,也许更加突出的的是网络的发展,以及大型处理机的出现。我们将来用户面对的是到处的客户终端,以及网页式的中断处理也许不再有什么移动硬盘,网络到处都是,触手可及,只要有一台联网的终端,就可以处理一切相关的事宜
2010-04-09 20:14:00
673
Visual BASIC多媒体播放器
2010-05-15
SPEED RH-1播放器
2010-05-15
Linux常用的Command
2010-05-08
图解在VMware下的Ubuntu中安全VMware Tools
2010-05-08
VMware网络设置
2010-05-08
基于MFC的多媒体播放器的实现
2010-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人