- 博客(12)
- 资源 (7)
- 收藏
- 关注
原创 Web Service实践之REST vs RPC
点击 下载pdf阅读.摘要Web Service 已经不再新鲜, 而随后的 SOA, Cloud Computing 也不断出现, 直到百度也 提出了自己的 框计算, 我们尚且不管这些时髦的名词背后所蕴藏的实际的技术创新有多少, 但是他们终究是逃不出一点, 即 如何解决访问服务的问题, 而此处的服务通常不在本地而是在 遥远的你不知道的美国或者印度.本文想阐述标题中提到的两种
2015-05-30 15:31:44 1170
原创 举例说明关于 Lua闭包 的存在价值
关于Lua的闭包的用法。动态语言闭包是一大特色,但是知道如何产生一个闭包,不知道闭包如何来使用就会变成一个非常尴尬的问题。前几天突然想明白了。跟大家说说。有其他好的理解也欢迎来和俺讨论切磋。 for i in iter() do print(i)end 这是Lua的泛型for的一个伪代码。Lua提供了一些迭代器比如 pairs()这个东西
2015-05-30 14:49:06 985
原创 nginx服务器access_log日志分析及配置详解
nginx的log日志分为access log 和 error log其中access log 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息日志的形式如下:201.158.69.116 - - [03/Jan/2013:21:17:20 -0600] fwf[-] tip[-] 127.0.0.1:9000 0.007 0.007 MX pythonta
2015-05-28 16:50:28 2289
原创 http 错误代码表
所有 HTTP 状态代码及其定义。 代码 指示 2xx 成功 200 正常;请求已完成。 201 正常;紧接 POST 命令。 202 正常;已接受用于处理,但处理尚未完成。 203 正常;部分信息 — 返回的信息只是一部分。 204 正常;无响应 — 已接收请求,但不存在要回送的信息。 3xx 重定向 301 已移动
2015-05-28 14:25:10 783
原创 Nginx基本数据结构
话说学习一种编程语言,例如C语言,我们首先学的也是数据结构,这是以后开发程序的关键。为了更好更方便的开发Nginx,Nginx自己实现了很多适合nginx的数据结构。Nginx中的数组 ngx_array_s是Nginx中的数组,原型为ngx_array_t。typedef struct { void *elts; //指
2015-05-20 17:56:37 2081
原创 nginx配置详解
user nginx ;#用户worker_processes 8;#工作进程,根据硬件调整,大于等于cpu核数error_log logs/nginx_error.log crit;#错误日志pid logs/nginx.pid;#pid放置的位置
2015-05-18 17:49:52 969
原创 使用 GDB 调试多进程程序
GDB 是 linux 系统上常用的 c/c++ 调试工具,功能十分强大。对于较为复杂的系统,比如多进程系统,如何使用 GDB 调试呢?考虑下面这个三进程系统:进程Proc2 是 Proc1 的子进程,Proc3 又是 Proc2 的子进程。如何使用 GDB 调试 proc2 或者 proc3 呢?实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某
2015-05-13 18:19:48 1045
原创 tcp中的粘包、半包的处理方法
TCP粘包是指发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。 出现粘包现象的原因既可能由发送方造成,也可能由接收方造成。发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。若连续几次发送的数据都很少,通常TCP会根据优化算法把这些数据合成一包后一次发送出去,这样接收方就收到
2015-05-12 10:16:38 4643 1
原创 Netty解决半包(TCP粘包/拆包导致)读写问题
TCP粘包/拆包TCP是个"流"协议,所谓流,就是没有界限没有分割的一串数据。TCP会根据缓冲区的实际情况进行包划分,一个完整的包可能会拆分成多个包进行发送,也用可能把多个小包封装成一个大的数据包发送。这就是TCP粘包/拆包。TCP粘包/拆包问题说明客户端要给服务端发送数据,假如为两个数据包。可能的情况如下:问题产生的原因:
2015-05-12 09:55:52 4408
原创 AIO 简介
Linux的I/O机制经历了一下几个阶段的演进:1. 同步阻塞I/O: 用户进程进行I/O操作,一直阻塞到I/O操作完成为止。2. 同步非阻塞I/O: 用户程序可以通过设置文件描述符的属性O_NONBLOCK,I/O操作可以立即返回,但是并不保证I/O操作成功。3. 异步事件阻塞I/O: 用户进程可以对I/O事件进行阻塞,但是I/O操作并不阻塞。通过select/poll/epoll等
2015-05-08 10:32:59 973
原创 在gdb中显示源码(gdbtui使用方法)
gdb调试一直是一个让人头疼的问题,我这个多年的linux用户也一直不习惯gdb,主要是因为gdb在调试的时候不能很好的展示源码。gdb里面可以用list命令显示源码,但是list显示没有代码高亮,我忍了,可是list这种显示代码的方式,使得我总不能一眼定位到正在执行的那行代码。可以毫不夸张的说,这个问题是阻止我长期使用gdb的最大的障碍。这是如此的不便,以至于GNU都想办法解决了————
2015-05-07 17:52:08 5252
原创 gdb如何保存和读取断点
刚开始在linux下学编程使用gdb的同学可能会发现,每次用gdb设置断点调试程序,但下次打开的时候所有断点都没有了,很不方便。下面介绍保存和读取断点的方法。 1. 保存断点 先用info b 查看一下目前设置的断点,使用save breakpoint命令保存到指定的文件,这里我使用了和进程名字后面加bp后缀,你可以按你的喜好取名字。 我使用的是save
2015-05-07 10:50:03 5818 2
数据结构实验课的全部源程序
2009-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人