自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

认知 行动 坚持

涛哥不知何许人也,亦不详其姓字。闲静少言,不慕荣利。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终...

  • 博客(43)
  • 资源 (19)
  • 收藏
  • 关注

原创 tars源码漫谈第5篇------tc_epoller.h/tc_epoller.cpp(epoll基本操作的封装)

马上就是4月1日了, 愚人节。 但2018年已经过了1/4, 好快, 这不是愚人的。 在tars代码中, 目前还没有看到select/poll的痕迹, 光芒被epoll遮挡了。 我们知道, epoll也就三个常用的api, epoll_create, epoll_ctl, epoll_wait, 且默认是LT模式。 可以思考一下, 为什么比起select...

2018-03-31 23:59:46 6876 2

原创 tars源码漫谈第4篇------tc_socket.h/tc_socket.cpp(socket基本操作的封装)

看优秀的源代码来学socket编程, 这是很好的方式, 来看下tc_socket.h/tc_socket.cpp . TC_Socket_Exception继承了TC_Exception, 没啥好说的。TC_SocketConnect_Exception也不需要说。 创建socket很容易, 这里考虑了tcp和udp:void TC_Socket::createSoc...

2018-03-31 23:55:21 7020 2

原创 tars源码漫谈第3篇------tc_ex.h/tc_ex.cpp(bt不是变态)

tc_ex中有异常类TC_Exception, 类中没有什么太多的功能, 对理解整个tars的作用不大。 尽管如此, 还是来看看如下函数:void TC_Exception::getBacktrace(){ void * array[64]; int nSize = backtrace(array, 64); char ** symbols = backtrac...

2018-03-31 23:42:16 5267 2

原创 tars源码漫谈第2篇------tc_common.h/tc_common.cpp(模板特化实现字符串的相关操作)

tc_common是很common的, 里面就是一些很common的功能。 很多软件开发, 可以直接用这些common代码, 省事,放心。 里面的代码很简单, 来看一个模板特化的代码实例:template <>string TC_Common::tostr<char>(const char &t){ char buf[2]; ...

2018-03-31 23:37:19 6458 1

原创 tars源码漫谈第1篇------tc_loki.h (牛逼哄哄的loki库)

loki库是C++模板大牛Andrei写的, 里面大量运用模板的特性, 而tc_loki.h借用了loki库的部分代码, 形成了一个基本的文件tc_loki.h, 来看看:#ifndef __TC_TYPETRAITS_H#define __TC_TYPETRAITS_H#include <memory>namespace tars{///////////...

2018-03-31 23:25:38 6465 1

原创 tars源码漫谈第0篇------getting to know tars(初识tars)

       一个偶然的机会, 遇到了tars开源框架, 感觉很强大,花了1天的时候,把tars跑起来了, 运行良好,遂打算来研究下这个开源框架。 其实, 称不上高大上研究, 说是自我唠嗑更为合适。       据tars官方介绍:        Tars这个名字取自于电影"星际穿越"中的机器人,它是基于名字服务使用Tars协议的高性能RPC开发框架,配套一体化的运营管理平台,并通过伸缩调度,实现...

2018-03-31 23:22:17 6987 4

原创 linux上进程打开句柄最大值是1024,但为什么epoll号称能管理上百万句柄呢?

        linux上进程打开句柄最大值是1024,  这只是默认情况而已:ubuntu@VM-0-15-ubuntu:~$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0...

2018-03-31 21:34:36 6668 2

原创 C++模板特化之初见

       模板具有通用功能,怎么定制呢? 特化即可, 来看个例子:#include <iostream>using namespace std;template<typename T> void square(T a) { cout<< a * a << endl; } template<> v...

2018-03-31 21:30:42 4806 1

原创 吃饭前写个linux select/poll/epoll代码示例玩玩

等朋友吃饭,还有1个小时, 写个select, poll, epoll程序玩玩:include <stdio.h>#include <unistd.h>#include <sys/time.h>int play_select(){ fd_set rfds; FD_ZERO(&rfds); FD_SET(STDIN_FILENO...

2018-03-31 16:14:21 7010 4

原创 秒破gettimeofday使用时出现的溢出问题

      最近遇到这样一段有bug的代码:#include<stdio.h>#include<unistd.h>#include <stdint.h>#include <sys/time.h>//微秒uint64_t get_usec(){ struct timeval now; gettimeofday(&now, NU...

2018-03-29 23:05:00 6229 1

原创 sql inner join的本质并非是取交集, 而是(可带条件地)膨胀/扩张

先看看两张表:mysql> select * from black1;+----------+| id |+----------+| zhangsan || lisi || wangwu |+----------+3 rows in set (0.00 sec)mysql> select * from black2;+------...

2018-03-29 23:01:47 11650 3

原创 再来说说为什么stl sort会概率造成core dump

stl sort的不当使用会概率造成core dump, 这个问题已经说过好几次, 如果不防范, 一旦遇到, 比较难查出原因。 来看看有问题的代码:#include <iostream>#include <vector>#include <algorithm>using namespace std;bool compare(i...

2018-03-24 22:42:46 6517 1

原创 sql注入攻击初探与实例分析

来看看表的结构:mysql> show create table zzz;+-------+------------------------------------------------------------------------------------------------------------------------------------------------...

2018-03-24 12:39:36 7131 5

原创 linux和Windows在执行svn checkout(co)时的不同表现

      假设svn地址是: https://xxx/yyy/busi      如果在linux上执行svn co https://xxx/yyy/busi,   那么download下来的是busi这个目录整体, 符合心理预期。 然后, 如果在Windows上去checkout,  那么得到的是busi中的内容, 而不包含busi这个文件夹, 颇为让人不悦, 很容易形成一堆散乱的文件, 真是...

2018-03-24 11:53:30 6862 2

原创 linux命令行无故换行的恼人问题

      在敲linux命令时, 明明本行远远没有满, 就自动换行了, 而且还覆盖, 颇为恼人。 在网上找了很多地方, 也没有比较好的解决方法, 勉强忍受了一段时间。      最近, 偶然看到一同事也遇到了这个问题, 操作是在SecureCrt界面那里先缩小界面, 然后放大界面, 搞定。      这种东西,还是应该多沟通, 吃饭的时候, 随便聊聊, 就可能解决一个自己无论怎么努力都解决不了的...

2018-03-24 11:39:20 14181 7

原创 C盘满--->保存文件失败--->尝试强制关机--->系统无法重启

C盘满--->保存文件失败--->尝试强制关机--->系统无法重启。         每一步都是教训啊, 幸亏IT维护的同学帮我修好了, 感激。

2018-03-24 11:30:02 5153 2

原创 udp和tcp切换之坑

       某服务既支持udp访问, 也支持tcp访问。 某客户端一直是tcp访问, 切换程udp访问后, 一切work正常, 但到高峰时候,就出现故障, 经查, 是buf找过了udp的65507的限制。               某服务原来只支持udp访问, 后来又切成tcp访问, 但没有包完整性判断, 导致业务层收包不完整, 坑。...

2018-03-24 11:17:33 10121 1

原创 常见I/O的访问时间scale

      了解I/O的访问时间很有好处。      我们都会把基本的字符串处理做成库或者函数, 供程序调用。你见过把字符串处理单独做成一个网络server吗? 我见过, 也用过。根据实际测试结果, 同城IDC之间, 往返网络迟延一般在10ms以内, 很快了。根据对这个字符串server进行监控,发现往返网络迟延+字符串server的处理时间, 总共才3-5ms.      某次,我把深圳对深圳的...

2018-03-24 11:03:51 5209

原创 动态配置的缓存方案

       假设有这样一个问题:       微信有10亿用户,不可能对所有用户的所有操作都打印log(最多只能打印错误log),  现在,微信内部领导经常反馈问题,没有log就不能查问题, 该怎么办? 如果普通用户反馈问题呢, 怎么查?       提示:       1. 白名单      2. 动态配置, 利用缓存      ...

2018-03-21 22:21:56 5024 1

原创 mysql中group by的使用示例------聚合分组

来看这样一个表:mysql> show create table tb_student;+------------+-----------------------------------------------------------------------------------------------------------------------------------...

2018-03-21 22:14:33 5679 1

原创 ctrl+shift+r / ctrl+f5 强制(不使用缓存)刷新google chrome网页

      我改了csdn图片后, 一直看到的是旧图片, n天之后, 还是旧图片。猜测应该是用了缓存(且缓存更新逻辑失败, 定是csdn的bug), 用ctrl+shift+r, 或者ctrl+f5, 强制刷新页面后, 图片就更新了, 靠谱。...

2018-03-19 23:34:49 20634 2

原创 看开源代码遇到dup2

      看开源代码遇到dup2:#include<stdio.h> #include<signal.h> #include<unistd.h> #include<stdlib.h> #include<fcntl.h> #include<sys/stat.h> int main() { pri...

2018-03-18 15:24:05 4969

转载 socket编程中对sigpipe信号的处理------Good

       转载地址:http://blog.csdn.net/myd620/article/details/47806205我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试.  但是服务器总是莫名退出,没有core文件.最后问题确定为, 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程...

2018-03-17 22:32:37 5691

原创 线程堆栈过小引起内存溢出, 进而导致core dump

之前在某微线程服务中遇到过一次, 线程堆栈设置过小, 导致程序崩溃(core dump), 通过加大线程堆栈的大小的设置解决了问题。 最近又碰到, 简单来看下: #include <stdio.h>#include <stdlib.h>#include <pthread.h>void* threadFunc(void* p) ...

2018-03-15 23:44:48 6985

转载 Linux线程的分离(detached)与结合(joinable)

       转载地址:http://www.cnblogs.com/mydomain/archive/2011/08/14/2138454.htm线程的分离与结合  在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,一个分离的线程是不能被其他线程回...

2018-03-15 23:29:39 6361 1

原创 用valgrind调试pthread_create引起的内存泄漏------顺便熟悉下线程的joinable和detached属性

valgrind的安装和调试很简单, 之前博文多次介绍(如果是ubuntu, 直接apt安装更简单, 一条命令搞定)。 最近遇到一个让人颇为难解的内存泄漏问题, 下面我们来抽取核心逻辑, 简单来说下: 先看看这段程序:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#...

2018-03-15 23:19:40 7208 3

原创 mysql的unique key

       最近需要用mysql做一个配置, 类似于配置文件, mysql表的列有key,value值, 此时, 可以考虑unique key, 来看看:mysql> show create table yyy;+-------+--------------------------------------------------------------------------------...

2018-03-15 22:59:51 9887 1

原创 mysql: ERROR 1292 (22007): Truncated incorrect DOUBLE value

      头晕了, 一个简单的insert操作出现了如下错误:ERROR 1292 (22007): Truncated incorrect DOUBLE value, 怎么回事?mysql> CREATE TABLE `tb_good` ( -> `xid` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, -&...

2018-03-15 22:51:30 12642

原创 【SVN Working copy is too old (format 10, created by Subversion 1.6)】的原因和解决

      下载了一个文件包demo, 准备提交到svn, 结果在svn add的时候, 报错:SVN Working copy is too old (format 10, created by Subversion 1.6       思考了一下, 估计是demo中有.svn文件。 查了一下, 在我的Windows上居然没看到(其实有), 在linux上find了一下, 果然有。 去掉后, s...

2018-03-15 22:41:48 5602

原创 json, xml, probuf, jce, bon与core dump高发区

       上次, 解析json的时候, 判断不完整, core了。         上次, 解析xml的时候, 判断不完整, core了。       probuf的core暂时没遇到过。       上次, 解析jce的时候, 参数填错, core了。       最近, 解析bon的时候 , 判断不完整(代码拷贝引起), core了, 耽误至少1小时。       都是什么鸟玩意儿!   ...

2018-03-09 22:14:52 5189

原创 log夹逼法定位core, 可能存在问题

       以前经常用log夹逼法定位问题, 比如core dump,  但是, 最近在某情况下发现, 如果出现core, 那么core前的log不一定会打印, 这可能是log的缓存问题(没有core的话, log会打印): API_LOG("xxx"); // 假设此处core API_LOG("yyy");      呵呵哒, 最后是用return的方法, 二分查找查出...

2018-03-09 22:13:07 4958 3

原创 最近实际用了一下recvfrom和sendto,感觉不错

       有个需要快速搞起的需求, 选用udp, 实际用了一下recvfrom和sendto,  不用担心粘包, 感觉不错, 顺便看看原型:ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, sockl...

2018-03-09 20:55:47 5823 1

原创 测试udp的丢包和乱序

udp服务端代码:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <unistd...

2018-03-09 20:54:46 12247 4

原创 udp服务雪崩测试与分析

我们知道, udp socket的接收缓冲区大小是有限的, 可以查到最大值。 以server端为例, 如果server端socket接收缓冲区满了, 那么client端新进的请求不会得到及时处理, 出现丢包。 即使server端的socket的接收缓冲区没有满, 但仍有一些请求在其中排队, 那么从client端发过来的新请求, 也自然会排队, 很可能没有等到server端来得及去re...

2018-03-09 20:51:39 5723 2

原创 带超时时间的sendto和recvfrom(用SO_SNDTIMEO和SO_RCVTIMEO搞起)

       在udp中, 可以用SO_SNDTIMEO和SO_RCVTIMEO来实现发送、接收的超时设置, 下面以SO_RCVTIMEO为例来看看:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <netin...

2018-03-07 22:24:50 12273 1

原创 两个按钮一个必中100W,一个50%获得1亿,你会选择哪一个?

       两个按钮一个必中100W,一个50%获得1亿,你会选择哪一个?       有点意思,  我已经有了自己的答案

2018-03-03 19:32:19 6121 1

原创 用ssh免密登录,但ssh无法登录, 怎么办?

之前登录服务器时,都是采用账号密码方式登录的。最近玩免密登录,看了一下原理,于是就玩起来了。其实也简单,网上到处都是相关操作,但我搞了好几次, ssh免密一直失败,还是提醒ubuntu@localhost's password:, 最后发现是权限的问题, 来看看:ubuntu@VM-0-15-ubuntu:~$ ssh localhostWarning: Permanentl...

2018-03-03 09:05:58 6370 1

原创 The authenticity of host 'localhost (127.0.0.1)' can't be established的处理方法

      ssh localhost的时候遇到:ubuntu@VM-0-15-ubuntu:~/taoge/hadoop_begin/hadoop-2.7.5$ ssh localhostThe authenticity of host 'localhost (127.0.0.1)' can't be established.     怎么办?ubuntu@VM-0-15-ubuntu:~/....

2018-03-02 23:21:50 38710 15

原创 为什么执行ping命令时不需要root权限? 怎样让进程具有root权限?

最近遇到一个问题, 需要让普通用户执行程序时具有root权限, 怎么办呢? 我们来看看ping, 它采用了raw socket, 需要root权限, 但是, 我们平常执行root命令的时候, 没有加sudo啊, 来探个究竟:ubuntu@VM-0-15-ubuntu:~/taoge/raw_soc$ ll `which ping`-rwsr-xr-x 1 root root 4...

2018-03-02 23:09:33 8438 2

原创 用raw socket接收udp数据的C/C++代码实战

最近要用到raw socket, 来看下。server.cpp:#include <stdio.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <sys/types.h>#include <linux/if_eth...

2018-03-02 23:05:59 8043 1

ipscanner.rar

获取网络的ip, host name和mac地址。我想免费让大家下载, 但csdn规定了必须设置积分, 没办法。

2017-12-01

linux protobuf安装文件

linux, google protobuf, 安装文件。 使用方法:http://blog.csdn.net/stpeace/article/details/53029812

2016-11-04

linux tree命令的源码

很多linux上没有tree命令, 该资源提供了tree命令的源码, 大家可以下载, 编译并安装, 具体请参考:http://blog.csdn.net/stpeace/article/details/49524273

2015-11-01

编译好的openssl库和头文件

编译好的openssl库, 欢迎使用, 具体使用方法, 请见http://blog.csdn.net/stpeace/article/details/41921287

2014-12-14

入门数据库sqlite3的最佳实践资料

入门数据库sqlite3的最佳实践资料, 里面是我打包好的程序, 附加一些数据库工具, 非常可以。 当然你也可以参考我的博文http://blog.csdn.net/stpeace/article/details/38503843

2014-08-12

Wireshark抓包工具

Wireshark抓包分析工具, 非常好用, 非常实用。

2014-06-08

优秀的截图软件

截图软件fast stone. 解压即可使用。 解压后, 可能会产生一些依赖性文件, 请不要轻易删除。

2014-05-25

获取网卡信息所需的头文件和库

获取网卡信息所需的头文件和库:IPEXPORT.H Iphlpapi.h IPHLPAPI.LIB IPRTRMIB.H IPTYPES.H

2013-10-19

哈希值计算软件

可以计算md5, sha1, sha256等哈希值的工具软件,我无法形容它的优秀。

2013-10-18

在Windows下学习Linux命令

在Windows下想学linux命令的同志,你终于找到了该资料。用法:解压,然后双击其中的cmd.exe, 然后就可以输入linux命令了,比如ls等(千万要注意,不要进行路径切换,否则linux命令就执行不了,总之,要确保相应文件在当前目录下)。

2013-08-08

计算机网络第5版谢希仁编配套光盘资料

计算机网络第5版谢希仁编配套光盘资料,这是计算机考研的指定教材对应的资料,你应该拥有它。

2013-07-19

OllyDBG反汇编工具

OllyDBG反汇编工具,非常强大。深化功底,需此工具。

2013-07-19

masm汇编器

微软的汇编器,其中有关键的masm.exe和link.exe,我试过,发现可用。

2013-07-19

word转pdf的插件

word转pdf的插件,直接安装即可,安装完后,“另存”word文档的时候,可以选择pdf(我用的word版本为2007)。

2013-07-18

音频处理软件Gold Wave

一款强大的音频处理软件,可以对音频进行各种处理。例如:如果你在准备某考试,需要听音频资料,但是,你嫌音频太慢,而且你的MP3播放器无法加速,那么你可以用该软件对音频本身进行加速,即改变音频本身,使之变快。另外,在处理的时候,可以实现批处理(我亲自实践过,发现可行)。

2013-07-17

H.264visa软件

一款非常强大的H.264视频码流的解析软件,可以看到解码后视频的像素值,运动矢量,宏块等非常多的信息(也可以打开原始的YUV视频,并看到像素值,但必须先用该软件打开某一H.264视频码流),比Elecard StreamEye软件(有bug)更为强大,我一直用H.264visa,目前没有发现有什么bug. 另外,该软件安装后1个月就会过期,没有关系,1个月后,你重新安装一次即可。

2013-07-13

Elecard StreamEye

Elecard StreamEye,一款分析H.264视频码流的工具,如果你在学习H.264,那么,你应该拥有它。

2013-07-13

YUVviewer :原始的YUV视频的播放器

原始的YUV视频的播放器(软件不是我写的),如果你做视频处理、视频压缩编码、视频通信、视频检索、视频取证,那么你很可能需要它。该软件的缺点是:你无法看到YUV视频的像素值。

2013-06-24

经典的C语言编译器:TC2.0

一款经典的C语言编译器:Borland Turbo C 2.0. 怀念Borland产品的人可以用一下,体验一下DOS下的编程。如果是C语言初学者,建议用MS的VC++6.0. 我试过,该TC2.0可以正常使用。

2013-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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