技术分享 -- 147




200x200


上周阅读了一下 tinyhttpd 的源码,麻雀虽小,五脏俱全,精炼的500行代码实现了一个 http server然而,放到网上后,有人评论:为什么没有包含&

#技术帖    #网络    #network    #ip   

200x200


概述看到了一个小型的 http server,/* J. David's webserver {{{ */ /* This is a simple webserver. * C

#技术帖    #c语言    #socket    #服务器   
WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行 下载链接:Web Bench  Tinyhttpdtinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质 博主对该项目源码进行了阅读和解析:超轻量服务器 tinyhttpd 源码解析  下载链接:Tiny HTTPd  CMockerycmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了 主要特点:免费且开源,google提供技术支持;轻量级的框架,使测试更加快速简单;避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入
#技术帖    #linux    #unix    #c语言   
包含文件 ZipFile.php<?php /** * Zip file creation class. * Makes zip files. * https://github.com/patricksavalle/CodeIgniter/blob/develop/system/helpers/zip_helper.php * @access public * @package PhpMyAdmin * @see Official ZIP file format: http://www.pkware.com/support/zip-app-note */ class ZipFile // {{{ { /** * Whether to echo zip as it's built or return as string from -> file * * @var boolean $doWrite */ var $doWrite = FALSE; /** * Array to store compressed data * * @var array $datasec */ var $datasec = array();
#技术帖    #php    #技术分享    #zip   
html 代码<html> <body> <input type="file" id="file" name="file" class="mediuminput" onchange="if ($('#file').val() != '') {$('#file_input').val($('#file').val()+'&nbsp;(点击更换文件)');}" value="" style="display:none"/> <input type="text" id="file_input" class="smallinput" style="cursor:pointer" onclick="$('#file').click()" readonly value="{{ entity.recoveryImg }}(点击选择文件)"/> <button type="button" onclick="upload_img()"
#技术帖    #symfony    #php    #file   
概述GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,可以找到那些不是一目了然的Bug 单步执行和跟踪函数调用list (l)使用list命令可以从main函数的第一行开始列出源代码,也可以显式指定要显示的行数如果什么命令都不输入,直接输入回车,就会重复执行原来的命令<h3>list (l)quit (q)退出start从程序开始处开始执行程序next (n)单步执行(不进入函数)step (s)单步执行(进入函数)backtrace (bt)查看函数调用的栈帧下面是执行结果:(gdb) bt #0 quick_sort (array=0xbffff1c8, beg=0, end=3) at main.c:6 #1 0x080485e4 in main () at main.c:32 可见当前函数 quick_sort 是被 main 函数调用,参数分别是 array、beg、endmain 栈帧编号为 1,quick_sort 栈帧编号为 0info (i)查看局部变量的值(gdb) i locals i = 0 j = 1 frame (f)选
#技术帖    #linux    #unix    #c语言   
PHP 中有好多好用的魔术变量,用好了可以起到事半功倍的效果,比如在引用文件、查找BUG、输出日志等场景下,应用的非常多 PHP 魔术变量魔术变量说明__LINE__当前行号__FILE__当前文件路径__METHOD__当前方法名(针对类方法而言)__FUNCTION__当前函数名__DIR__当前目录名__CLASS__当前类名__NAMESPACE__当前命名空间 
#技术帖    #php    #技术分享    #魔术变量   

200x200


简介PHP 的成功得益于他拥有大量的库函数,并且在 PHP3 以后提供了 PHP 扩展的支持,这样,如果你需要使用 PHP 去做一

#技术帖    #php    #c语言    #技术分享   

200x200


修改 nginx config 并编译默认 nginx 编译后是 release 版本,不允许调试,需要对配置文件进行修改&nbs

#技术帖    #linux    #c语言    #unix网络编程   
迭代服务器迭代服务器的主进程即监听进程,进入监听状态后阻塞于 accept 操作,当监听进程 accept 到新的连接后,通过 fork 方式派生出来服务进程处理请求,处理完成后服务进程退出Apache web服务器就是以这种方式工作的优点开发流程清晰,并且服务进程与主进程隔离,安全性高缺点频繁 fork 带来机器性能的损耗,效率较低,适合请求并发量小,每次请求处理比较耗时的业务并发性服务器与迭代服务器相同,主进程进入监听状态,然后创建一个进程池或线程池,池中的业务进程或业务线程都在该 socket 上执行 accept 操作竞争请求处理权,进行请求的处理,主进程(主线程)负责维护进程池(线程池)中进程(线程)的数量和状态优点拥有较强的并发性能,可以处理并发请求量较大的应用场景异步服务器由于IO复用模型 select、epoll 等同时等待多个描述符的卓越性能,可以大大提高网络操作的效率,因此越来越多的开源力作使用异步模型进行服务的处理,如 memcache、redis、nginx 等在单进程中,监听线程通过 select、epoll 等IO复用模型进行整个服务中网络连接、读写等事件的监听优点网
#技术帖    #apache    #服务器    #技术分享   



京ICP备15018585号