- 博客(77)
- 资源 (1)
- 收藏
- 关注

原创 资源收集
ACM网络图书库http://portal.acm.org/portal.cfm一个收集了很多P2P资料的blog, 特别是关于kad方面http://blog.youkuaiyun.com/legulas66 一个非常出色的英文网站(unix.com):http://www.developerweb.net/forum/index.php
2009-07-15 21:14:00
512

原创 经验总结:【不断更新】
http://dhcp.tcgs.tc.edu.tw/c/p018.htm 大数问题2011-06-24 smb 环境设置 一直以来smb 都有问题 ,其实很简单的, 不知道为什么老是出问题。 记录过程http://wiki.ubuntu.org.cn/Samba username : new
2009-02-27 16:58:00
622
转载 #---改变目录色彩---#
Linux在命令行方式中,默认的目录显示颜色为蓝色,在黑色背景下难以看清。现介绍一种修改显示颜色的方法: 1、将/etc/DIR_COLORS文件cp到~/下,并改名为.dir_colors。 cp -af /etc/DIR_COLORS ~/. dir_colors2、编辑.dir_colors文件,找到“DIR 01;34 # directory”,将34改为36
2011-12-05 10:46:44
701
原创 printf 实现原理
一: 实例源码printf 实现原理:printf 函数肯定有一个格式串,例子中为"string = %s xx = %s , hex = %d \n",printf的实现是依据该格式串,智能的解析% 后面的字符,假如第一个% 后面是s 代表格式串后面的第一个参数代表一个地址,如果是d则代表是一个十进制。 以此类推。所以要特别注意格式串的编写,如果多写了(printf("%
2011-12-03 00:43:18
3471
原创 udp 丢包问题以及解决方案
1:场景服务器: 4 CPU 300w/min upd 包接收量 ,丢包为 2k /min 以上都是峰值。 只有一个CPU 负荷高,其他CPU 负荷都很低解决办法包括:1) 增大udp 接收缓存2) 寻找一种方法, 让4个CPU都能够利用起来。 3) udp丢包有很多种可能, 可能在网卡那一层就丢了,怎么检测? 关键是要弄清楚整个的一
2011-10-29 15:14:11
2718
1
原创 将一个char 类型的数值转换为unsigned short类型
场景:将一个char 类型的数值转换为unsigned short类型char 一个字节unsigned short 二个字节对于无符号数,我们直接在高位加零就可以了,也叫零扩展对于有符号数, 执行符号扩展 。 举例: 注: char
2011-10-14 17:13:34
6450
原创 apue 第五章 stand I/O
Apue stand io 读书笔记缓冲1:fully buffer2:line buffer 3:unbufferedReading and writing a stream1: charactor-at-a-time IOGetc:
2011-10-05 19:59:28
706
转载 gethostbyname timeout
下面是网上摘录的解决该问题的方法, 对怎么绕过其他系统函数(无论是线程安全还是非安全的)也有很好的借鉴意义Hello,I need to add timeout to gethostbyname function in my program. Igoogled and searc
2011-07-26 17:34:27
2077
原创 函数调用跟踪
为了很好的理解nginx ,看了-finstrument-function的使用,主要参考了资料file:///C:/Users/hp/AppData/Roaming/Mozilla/Firefox/Profiles/hidslbey.default/ScrapBook/data
2011-07-21 17:29:31
792
原创 nginx 源码 笔记
记录阅读nginx 源码过程中一些我认为有价值的资料(参考资料,收获等) 这是一个系列 会不断更新1 )epoll 相关 http://blog.youkuaiyun.com/force_eagle/article/details/4348017
2011-07-11 23:08:38
550
原创 动态库使用方法
动态库使用方法 工作笔记 1: 怎么编译动态库 详细解释下各个参数的意义 动态库和静态库区别 生成共享库: gcc -share -fPIC -o xx.so ff.c -share : 创建一个共享的目标文件 -fPIC : 指
2011-07-05 17:51:13
3110
原创 【读书笔记】 memcached
2011-06-21 memcached 已经大概看完几天了 记录下所做的笔记 1: 明白了memcached 的线程模型2: 看了源码里面set 命令执行的流程,基本了解了它的存储机制 (slabs , hash ) ,存储这一块没有太详细的看, 如果以后项目中用到, 在仔细看也不错。 3: 分布式 , 这个应该是在客户端做的。 这里面基本没有涉及。
2011-06-21 20:56:00
579
原创 读书笔记: SO_LINGER 选项
SO_LINGER 选项关键字:TCP UDP 发送接收缓冲区 CLOSE, SHUTDOWN 函数close 函数默认处理: FIN 放到发送缓冲区的最后面,立即返回,并且发送完发送缓冲区中的所有数据。如果想改变close的操作,可以设置SO_LINGER选项 具体参考《UNP》 7.4 总结: 设置SO_LINGER 套接口选项后,close的成功返回只是
2011-06-19 11:23:00
781
转载 libevent 学习比较
注意 event_base_dispatch 和event_dispatch 的区别。 个人理解event_base_dispatch 是针对某类base 的。 http://hi.baidu.com/%D0%A1%C6%BD339/blog/item/e913fd8160b006ddbd3e1e08.htmllibevent 学习
2011-06-16 14:07:00
1881
原创 《计算机网络 自顶向下方法》 传输层
《计算机网络自顶向下方法》第三章笔记 这是一本好书,这个文档只是对其中的概念总结下。 UDP UDP 是无链接的,它得到数据,加上8字节UDP头,转发。为什么还有那么多应用(DNS, SNMP)选择UDP而不是TCP? 答案是协议没有好坏,选择一个最适合的最重要,对于DNS, SNMP,可靠性不是最重要的。许多应用选择UDP的原因有以下几点:一:应
2011-06-10 00:14:00
1546
原创 builder 模式 实例分析
<br /><br />Builder 模式 实例分析<br /><br /><br />1:简介<br /> Bulder模式的意图:将一个复杂格式的构建和它的表示分离<br />2:实践中使用<br /> 在实践中最重要的是要彻底明白需求,能够脱离业务,抽象出整个结构的模式,对应该模式的各个部分,做到接口的抽象。<br />3: c 语言实现<br />参考《系统程序员 : 成长计划》第10章。<br />书上面已经很清楚了,这些记录下,加深理解<br />Part1 :
2011-06-01 15:18:00
834
转载 格式化输出
http://www.neu.edu.cn/cxsj/pointchart/c4/Page5.html<br /><br /><br />printf函数称为格式化输出函数,其功能是按用户指定的格式(控制字符串规定的格式),将指定的数据项输出到标准的输出设备(一般为显示器)上。<br />REF:.TXTprintf函数 TAG: printf函数,标准输入输出TEXT:printf函数是一个标准库函数,能够以精确的格式输出程序运算的结果。printf函数的调用格式为: printf(“格式控制字符串”,输
2011-05-31 14:38:00
1723
原创 信号: SIGCHILD
信号: SIGCHILDQ: 1 : 该信号默认处理是忽略? 为什么需要显式的忽略?2: 可移植的信号处理? 3: signal 函数和sigaction 函数的区别4:可再入5:A:1: 对于信号SIGCHILD 处理, 是在应用中处理的比较多的两个应用(SIGCHILD, SIGPIPE) 系统默认是忽略该信号的,如果要再捕捉该信号,参考《CSAPP》第八章。总结: SIGCHLD信号是一个很特殊的信号, 在不同的系统中可能有不同的语意SIG_DEF (忽略) 和SIG_IGN 在早期的系统中还
2011-05-14 06:41:00
2337
原创 http 资料
http://blog.sina.com.cn/s/articlelist_1736173915_0_1.html<br />http://hi.baidu.com/langwan/blog<br />http://code.google.com/p/nginxsrp/wiki/NginxCodeReview<br />apache模块开发指南 还有就是网上的那个lighttpd 这个源码了。
2011-05-04 22:57:00
622
原创 学习心得:在c 中用面向对象的思想编程
<br /> 学习了《系统程序员:成长计划》<br /> <br /> 对里面用c语言实现面向对象的思想印象比较深刻,刚好前段时间有时间看了《敏捷软件设计》 里面几乎都是用的面向对象的思想。 <br />用什么语言不重要, 重要的是思想。 <br /> <br /> 平时用c比较多。 这里就回忆下它实现的方法:<br /> 步骤一:<br /> 为什么要用面向对象的思想呢? 引用原书的话,接口隔离变化 <br /> <br /> 一般设计为对对象的create ,
2011-05-04 22:56:00
957
原创 虚拟机 硬盘 扩充方法
前言:搭建开发环境, 以前安装的虚拟机硬盘太小,需要扩充 步骤如下, 记录之1: 在vmware 上面扩充好硬盘大小 。具体步骤 选中hard disk , 然后选择utilities , 选中扩充2: 用fdisk /dev/sda 查看整个硬盘的分区,情况, 并且创建一个新的分区。 3: 假如创建了一个新的分区, 用mount 命令挂载上就可以用了。
2011-04-30 17:38:00
867
1
原创 信息位的表示
信息位的表示字节: 8位的块 最小的可寻址的存储器单位. 对于在机器上面的位, 对于相同的二进制序列,用不同的方式去看表现出来的值就不一样, 比如unsigned , 二进制补码等。 比如 Printf(“0x%x = %d /n”,val,val); 相同的东东,但是不用的表现形式。浮点数分为单精度,双精度(待补充)对象的地址和我们在存储器中如果对这些字节排序。对象地址肯定是所使用字节序列中最小的,排序的方法有两种,大端,小端,一般的机器都是小端,这个可以在编译内涵的.config
2011-04-28 23:04:00
2014
原创 函数参数为指针
<br /> 在<c/c++高质量编程 》 中典型的<br /> <br />7.4 指针参数是如何传递内存的?<br />如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例 7-4-1 中,<br />Test 函数的语句GetMemory(str, 200)并没有使str 获得期望的内存,str 依旧是NULL,<br />为什么?<br />void GetMemory(char *p, int num)<br />{<br />p = (char *)malloc(sizeof(char
2011-03-11 11:22:00
775
原创 ntfs-3g 移植 记录
<br /> 今天1.30, 公司已经放假了, 最近项目紧张, 买好的机票又退了,年假也没有请到。 悲剧!!<br /><br />步骤一 : 内核增加fuse 模块, 参考上面一篇 blog <br />步骤二: <br /><br />1. 到http://www.tuxera.com/下载最新的ntfs-3g源码,可先参考其文档<br />2. configure配置参考如下: ./configure CC=sh4-linux-gcc --host=sh4-linux --p
2011-01-29 18:26:00
3049
原创 fuse 移植
<br /><br /> <br /> <br />移植经验<br />参考:http://linux.chinaunix.net/bbs/viewthread.php?tid=1042164&extra=page%3D4%26amp%3Bfilter%3Ddigest<br /><br />具体就是参考上面得到depmod 这个命令 <br />然后呢按照下面方法得到fuse.ko 这个模块<br /><br />定位fuse模块内核代码:/root/linux-2.6.23/fs/fus
2011-01-29 17:10:00
1385
原创 Conncet 问题
<br />Conncet 问题 环境 : linux 客户端 ,服务器端 。 非阻塞 ,客户端和服务器端部在同一机器上 服务器等待连接情况,有连接时,处理连接服务器端结构如下: 每一次只是处理一个连接 <br />While(1){ Ret =Select(listenf+1,&rd,NULL,NULL,tv) //等待连接请求 { Client = accept(listen,) If(client > 0) { While(1) //死循
2011-01-06 20:22:00
1287
2
原创 实践中发现的问题
<br /> <br /> SOCKET 缓冲区问题<br /> <br />环境: <br />server , 非阻塞 一直循环发送数据(send , 并且数据是以'/n' , '/0' 结尾的)<br /> <br />client , 阻塞 循环接收数据 <br /> <br /> <br />现象:<br /> <br />如果在server中不usleep(1000) ,也就是发的速度非常快,
2010-12-20 15:10:00
860
原创 Connect : Connection refused
linux服务器端一直检查是否有数据发送给客户端。 如果有一直发(send) , 非阻塞的linux 客户端 connect 服务器端成功后 做如下循环接收 ,阻塞的int rlen = -1;while(1){ rlen = recv(); //阻塞 if(rlen { perror("recv"); break; }}close(socket);return;运行一段时间后发现 客
2010-12-17 12:19:00
2048
转载 c++ primer 记录
数据抽象和封装 数据抽象:数据抽象是一种依赖于接口和实现分离的编程和设计技术。类设计者必须关心类是如何实现的,而使用该类的程序员则不必了解这些细节,他们只需要了解类的接口就可以使用该类。 封装:封装是一种将低层次的元素组合起来形成新的、高层次实体的技术。函数是封装的一种形式:函数所执行的细节行为被封装在函数体内。被封装的元素隐藏了它们的实现细节——可以调用一个函数但不能访问它所执行的语句。当引入类的概念后,封装被更好的理解,很多类内部的细节被隐藏,从外面所能看到的只是一些类提供的接口。
2010-12-14 15:23:00
534
原创 日志 与或
<br />inline void<br />CPLogger::_log_on(const int type, const int levels)<br />{<br /> assert(type >= 0 && type <= LOG_TYPE_MAX);<br /> assert(levels >= 0 && levels < LOG_LEVEL_MAX);<br /> if (T_ALL == type)<br /> {<br />
2010-12-14 14:27:00
542
原创 链接 总结
汗,本章已经是我第几次详细看了, 我居然看了一下午 不的不佩服写的好呀 链接 总结7.1:编译过程.c .i(中间文件) .s(汇编) .o(可重定位目标文件) Cpp(预处理器) ccl(编译器) as(汇编器)最后用ld(链接器)生成可执行文件操作系统调用loader(加载器)运行该文件,7.2:链接器完成任务1) 符号解析:引用到定义的一一对应2) 重定 位:定义与实际存储器位置连续起来引用==
2010-11-22 17:28:00
621
3
原创 libevent 移植到 ARM 步骤
一.libevent的交叉编译1.配置<br />./configure --prefix=/opt/crossinstall/libevent --host=arm-uclibc-linux CC=arm-uclibc-linux-gcc CXX=arm-uclibc-linux-g++<br />2.编译<br />make<br />3.安装<br />make install<br />二,tmux的交叉编译1.配置./configure<br />2.然后修改config.
2010-10-21 19:41:00
7880
原创 ulimit -a /proc/sys/fs/file-nr 数字解析
<br /> <br /> <br />file-nr:<br /> <br />Historically, the three values in file-nr denoted the number of<br />allocated file handles, the number of allocated but unused file<br />handles, and the maximum number of file handles. Linux 2.6 always<br />
2010-09-07 15:20:00
8905
转载 非阻塞socket 的连接
非阻塞socket 的连接2010-02-21 14:17方案1:使用while和usleep的timeout<br />int connect_socket_timeout(int sockfd,char *dest_host, int port, int timeout)<br />{<br />struct sockaddr_in address;<br />struct in_addr inaddr;<br />struct hostent *host;<br />in
2010-09-02 11:34:00
1253
原创 select 模式 非阻塞
<br /> 在windows 下设置select 模式的非阻塞。 <br /> 具体实现如下<br /> <br /> 客户端:(window) 创建一个socket ,非阻塞, 调用connect , connect 立即返回。 然后用select 检查,如果可写, 就认为该 connect 连接成功, 在具体实现的时候发现如果不清空可写集, 发现select 一直返回该描述字可写。 认真看了下unp ,发现确实一值为可写, 第一次可写表示连接成功, 对于一个已经连接成功的tcp
2010-09-01 21:25:00
1405
转载 常见音视频格式
MPEG 系列<br />MPEG即(Moving Pictures Experts Group)运动图象专家组,属于ISO(InternationalOrganization for Standardization)国际标准组织,他们开发了一系列视频音频编码,最为大家熟悉的就是MP3,MPEG-1/2/4。<br />MPEG-1<br />较早的视频编码,质量比较差,主要用于 CD-ROM 存储视频,国内最为大家熟悉的就是 VCD(Video CD),他的视频编码就是采用 MPEG-1。
2010-08-27 10:59:00
1720
转载 live555 linux 编译
<br />live555 支持 h.264 初步告捷,可以播放,尽管不是很稳定,或者说暂时只能播放 1 帧(主要是我现在还不了解 帧的概念),同时还有 Mal SDP 的传输问题,但还是总结一下,作为参考。<br />liveMedia项目(http://www.live555.com/)<br />1、编译安装<br />下载 source code 到 ubuntu 下<br />解压<br />./genMakefile linux<br />make<br />2、运行
2010-08-26 21:55:00
20979
转载 live555 流程重要函数整理
服务器启动DynamicRTSPServer::createNew(*env, rtspServerPortNum, authDB);env->taskScheduler().doEventLoop()有链接了!select(fMaxNumSockets, &readSet, NULL, NULL,&tv_timeToDelay)创建好了RTSPClientSessionvoid RTSPServer::RTSPClientSession::incomingRequestHa
2010-08-25 21:36:00
2890
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人