自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fengge_ylf的专栏

专注于服务器和P2P技术的研究

  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

转载 高并发IM系统架构优化实践

https://yq.aliyun.com/articles/66461?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&utm_content=m_8744

2017-06-06 14:30:17 527

原创 centos下mysql++的编译安装

1,yum install mysql-devel2,./configuremakemake install

2016-06-12 14:25:20 1057

转载 一致性哈希算法应用与分析

转载:http://www.cnblogs.com/xudong-bupt/p/3185194.html一致性哈希算法应用与分析  一致性哈希算法主要使用在分布式数据存储系统中,按照一定的策略将数据尽可能均匀分布到所有的存储节点上去,使得系统具有良好的负载均衡性能和扩展性。感觉一致性哈希与数据结构中的“循环队列”还是有一点联系的。1.简单哈希算法  哈希(h

2016-05-04 14:49:09 437

转载 一个 Linux 上分析死锁的简单方法

转载:http://www.ibm.com/developerworks/cn/linux/l-cn-deadlock/本文主要介绍一种在 Linux 上分析死锁问题的简单方法。主要介绍死锁的基本概念,以及如何使用 pstack 和 gdb 对死锁问题进行分析。2 评论于 东海, 软件工程师, IBM宋 波, 软件工程师, IBM

2016-03-31 14:37:53 1589

转载 100万并发连接服务器笔记之1M并发连接目标达成

转载:http://www.blogjava.net/yongboy/archive/2013/04/11/397677.html100万并发连接服务器笔记之1M并发连接目标达成第四个遇到的问题:tcp_mem在服务端,连接达到一定数量,诸如50W时,有些隐藏很深的问题,就不断的抛出来。 通过查看dmesg命令查看,发现大量TCP: too many of orphaned

2016-03-30 10:58:40 1846

转载 从 0 到 1:微信后台系统的演进之路

编者按:2 个月的开发时间,微信后台系统经历了从 0 到 1 的过程。从小步慢跑到快速成长,经历了平台化到走出国门,微信交出的这份优异答卷,解题思路是怎样的?本文由张文瑞,微信后台团队出品。本文由 36 氪转载自微信公众号infoQ(微信号:infoqchina)。从无到有2011.1.21 微信正式发布。这一天距离微信项目启动日约为 2 个月。就在这 2 个月里,微信从无到有,大

2016-02-02 15:11:04 739

转载 Linux动态库相关知识整理

Linux动态库相关知识整理动态库和静态库在C/C++开发中很常见,相比静态库直接被编译到可执行程序, 动态库运行时加载使得可执行程序的体积更小,更新动态库可以不用重新编译可执 行程序等诸多好处。作者是一个Linux后台开发,这些知识经常用到,所以 整理了一下这方面的知识。静态库相对简单,本文只关心Linux平台下的动态库。创建动态库这里我把一个短小却很有用的哈希函数编译成

2015-11-11 10:35:47 514

转载 WebRTC在Windows下的编译过程

最近有项目用到WebRTC的源码,由于WebRTC下载及编译有些麻烦,所以把过程记录一下,以便有需要的童鞋参考。WebRTC下载完成后,在源码src目录下有一个all.sln的VS解决方案文件,打开它后可以看到有二百多个项目。这时选择Debug版本编译整个解决方案,通常整个解决方案不可能一次性编译通过,而且每台机器的环境,和WebRTC的源码版本的不同,也会造成不一样的编译错误。下面就我在

2015-08-10 15:11:19 2845

原创 mysql Connector C++在centos上的编译

一,编译需要两个库的支持:boost和mysql开发库。Mysql的开发库通过 yum installmysql-devel安装。二,进行编译:1,  执行: cmake(Connector所在的路径)如果没有cmake,通过yum install cmake进行安装。运行命令后会生成makefile。2,  执行: make3,  执行: makeinstall

2013-10-16 13:50:20 2564

转载 coredump设置方法

关于内核转储的设置方法 1. 内核转储作用 (1) 内核转储的最大好处是能够保存问题发生时的状态。(2) 只要有可执行文件和内核转储,就可以知道进程当时的状态。(3) 只要获取内核转储,那么即使没有复现环境,也能调试。 2. 启用内核转储1.1 查看内核转储是否有效在终端中输入以下命令,查看内核转储是否有效。#

2013-08-13 09:09:14 952

原创 内存泄露

有一种内存泄露  就是使用链表(vector list map等 且存的是指针)的时候没有及时的清空 不断的放里面放数据 逐渐的吃内存  并且在程序关闭的时候又正确的释放了 这种情况有时不好查

2013-01-22 14:23:20 475

原创 编程注意事项个人总结

1,流程多考虑异常情况,非法操作。2,多做一些错误判断和检查。并输出相关LOG3,在插入操作时( vector list map)要先判断是否已经存在。4,内存容易出错的原因  使用了空指针或者已经被删除的指针。  内存溢出,在往内存拷贝数据的时候要判断长度。  开辟了很大的内存。(解析出来的值过大)5,服务器要检验客户端传来的值的有效性。尤其和开内存 拷贝内存 或循环

2011-12-18 20:08:24 663

原创 从code::blocks导出makefile文件

1,使用cbp2make工具2,使用cbmakegen插件请参考http://forums.codeblocks.org/index.php/topic,13675.0.html

2011-12-02 17:25:46 7342

转载 Linux下,多线程程序死循环问题调试

当你的软件在某个时刻停止服务,CPU占用达到100%+,这种问题一个可能的原因是产生了死循环,假设程序某处存在潜在的死循环,并在某种条件下会引发,本文以一个示例来定位出现死循环的位置。当程序某处存在死循环,通常定位问题及缩小范围的方法是,在可疑的代码处加log,或者注释掉可疑代码,这对于容易重现问题的程序来说还好,但对于“偶尔”才会产生问题程序却很难调试,因为我们很难重现程序故障。本文所述的调

2011-12-02 15:27:18 2079

转载 对条件变量(condition variable)的讨论

作者:王东 1.1       什么是条件变量和条件等待?简单的说:条件变量(condition variable)是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待某个条件为真,而将自己挂起;另一个线程使的条件成立,并通知等待的线程继续。为了防止竞争,条件变量的使用总是和一个互斥锁结合在一起。 Wiki中的定义如下:Conceptually

2011-10-22 14:59:22 15010

转载 shared_from_this 几个值得注意的地方

shared_from_this()是enable_shared_from_this的成员 函数,返回shared_ptr。首先需要注意的是,这个函数仅在shared_ptr的构造函数被调用之后才能使 用。原因是enable_shared_from_this::weak_ptr并不在构造函数中设置,而是在shared_ptr的 构造函数中设置。如下代码是错误的:clas

2011-10-21 20:52:00 3159

原创 利用读写锁和智能指针来实现多线程下对资源的多个地方读和多个地方写的实现。

比如对于一个list,我们有时需要在多个线程里对它进行访问(读操作),但在其他的线程有可能对他进行删除和添加操作(写操作)。所以要对list进行保护。有以下几种处理方法1,直接对list进行加锁方式,不管是读操作还是写操作。但这样一来效率就低了。因为在只有读操作的

2011-10-05 10:05:18 1370

原创 boost::asio要注意的一个地方

asio是在多线程环境里运行的,他所绑定的用户所传递的回调函数也是在多线程里运行。在asio线程外对asio里函数的调用(比如close) 要放到asio线程里调用,方法就是用post。

2011-10-03 10:57:13 1297

原创 解决io_service::run在没有任务就返回的问题

当有任务的时候,run函数会一直阻塞;但当没有任务了,run函数会返回,所有异步操作终止。在一个客户端程序中,如果我想连接断开后重连,由于连接断开了,run会返回,当再次重连的时候,由于run返回了,即使连接成功了,也不会调用aysnc_connect绑定的回调函数。有两

2011-09-21 10:32:52 11269 2

原创 使用boost::asio需要注意的一个地方

用ASIO写了一个客户端和服务器。但在测试的时候发现客户端的async_connect所绑定的函数有时不返回。后来经过一番思考,发现是io_service的run调用时机不对。run必须在async_connect后者async_accept后调用,不然不会阻塞在run上

2011-09-20 11:54:57 1632

转载 boost的递归锁

引用之前发表过的文章: http://lajabs.blog.cd/?p=342针对如下错误:terminate called after throwing an instance of 'boost::exception_detail::clone_impl'wha

2011-09-20 10:40:49 7770

转载 linux epoll模型

转载自:http://www.cppblog.com/Khan/archive/2008/04/02/46013.htmlhttp://www.xmailserver.org/linux-patches/nio-improve.html    Linux I/O多路复用技

2011-08-19 22:28:52 805

原创 对“关于boost::condition的用法”文章的个人的分析

首先我们看只有一个reader/一个writer的情形#include #include #include #include #include int number;boost::mutex m;boost::condition not_f

2011-08-13 08:34:52 4316

原创 ubuntu下让崩溃的程序产生core dump文件

用下面的命令运行程序sudo sh -c "ulimit -c ulimited;./HelloWorld"也可以先ulimit -c unlimitedulimit unlimited然后每次运行程序前要ulimit -c unlimited然后运行

2011-08-08 14:34:45 4876

原创 利用mysql++对数据库插入汉字

数据库字段设置成gbk程序也设置成gbk mysqlpp::Connection conn(false); conn.set_option(new mysqlpp::SetCharsetNameOption("gbk"));

2011-08-03 16:34:04 675

原创 linux下编译raknet的方法

1.编译成静态库。   g++ -c *.cpp   ar rc libraknet.a *.o   g++ -shared -O3 -fPIC -o libraknet.so.0.0.0 *.cpp2.将生成的库文件拷贝到系统库下  cp libraknet.so.0.0.0 libraknet.a /usr/local/lib/3.建立连接ln -s /usr/local/lib/li

2010-03-24 15:59:00 2018 2

原创 解决UDP出现的10054错误

问题描述如下:一个机器A有两个IP 一个是内网的 一个是外网的 有用UDP写的C/S的程序 S放在A上 我的机器在内网 当我用内网IP通讯时 A能接收到数据并且A也能把接收到的数据返回 当我用外网IP通讯时 A能接收到数据 但下次接收就出现10054错误 然后又恢复正常了,而且我不能接收到A返回的数据。实在想不明白是什么原因解决办法:1.我也碰到类似的问题,这是winsock的BUG,

2006-10-13 17:07:00 10126 1

原创 封包和拆包

   对于基于TCP开发的通讯程序,有个很重要的问题需要解决,就是封包和拆包.自从我从事网络通讯编程工作以来(大概有三年的时间了),我一直在思索和改进封包和拆包的方法.下面就针对这个问题谈谈我的想法,抛砖引玉.若有不对,不妥之处,恳求大家指正.在此先谢过大家了.一.为什么基于TCP的通讯程序需要进行封包和拆包.TCP是个"流"协议,所谓流,就是没有界限的一串数据.大家可以想想河里的流水,是

2006-06-13 10:08:00 16662 11

用qt写的超市管理系统

这是由QT编写的超市管理系统

2020-12-28

空空如也

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

TA关注的人

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