左雪菲的专栏

欢迎访问我的个人网站:http://www.hootina.org

排序:
默认
按更新时间
按访问量

服务器端编程心得(三)—— 一个服务器程序的架构介绍

本文将介绍我曾经做过的一个项目的服务器架构和服务器编程的一些重要细节。 一、程序运行环境 操作系统:centos 7.0 编译器:gcc/g++ 4.8.3     cmake 2.8.11 mysql数据库:5.5.47 项目代码管理工具:VS2013 一、程序结构 该程序总共有17个线程,...

2016-12-02 00:36:02

阅读数:9438

评论数:4

URLEncode和Decode算法代码

bool UrlEncode(const string& src, string& dst) { if(src.size() == 0) return false; char hex[] = "0123456789ABCDEF"; size_t ...

2016-12-01 09:27:47

阅读数:1561

评论数:0

linux安装cgdb

下载完cgdb之后,进入cgdb目录,执行: $ ./configure --prefix=/usr/local $ make $ sudo make install 在第一步出现如下错误,则按下面方法解决: 出现错误: configure: error: CGDB requires cur...

2016-11-29 09:39:04

阅读数:2482

评论数:3

在gdb中显示源码 -- gdbtui使用方法

gdb调试一直是一个让人头疼的问题,我这个多年的linux用户也一直不习惯gdb,主要是因为gdb在调试的时候不能很好的展示源码。gdb里面可以用list命令显示源码,但是list显示没有代码高亮,我忍了,可是list这种显示代码的方式,使得我总不能一眼定位到正在执行的那行代码。 可以毫不夸张的...

2016-11-25 14:24:30

阅读数:701

评论数:0

gdb多线程下禁止线程切换

多线程下禁止线程切换: set scheduler-locking on|off|step

2016-11-25 13:45:40

阅读数:1853

评论数:0

服务器端编程心得(二)—— Reactor模式

最近一直在看游双的《高性能linux服务器编程》一书,书上是这么介绍Reactor模式的: 按照这个思路,我写个简单的练习: /** *@desc: 用reactor模式练习服务器程序 *@author: zhangyl *@date: 2016.11.23 */ ...

2016-11-24 15:12:36

阅读数:5046

评论数:9

mysql sql语句性能调优

在做服务器开发时,有时候对并发量有一定的要求,有时候影响速度的是某个sql语句,比如某个存储过程。现在假设服务器代码执行过程中,某个sql执行比较缓慢,那如何进行优化呢? 假如现在服务器代码执行如下sql存储过程特别缓慢: call sp_wplogin_register(1, 1, 1, '...

2016-11-22 09:57:05

阅读数:784

评论数:0

浅析linux下open函数O_CLOEXEC模式和fcntl函数FD_CLOEXEC选项

关于open函数O_CLOEXEC模式,fcntl函数FD_CLOEXEC选项,总结为如下几点: 1.调用open函数O_CLOEXEC模式打开的文件描述符在执行exec调用新程序中关闭,且为原子操作。 2.调用open函数不使用O_CLOEXEC模式打开的文件描述符,然后调用fcnt...

2016-11-09 09:20:30

阅读数:798

评论数:0

linux nc命令相互发消息及传文件

一. 相互发消息 步骤:      1. 服务器在某个端口上侦听,使用nc -l 主机ip地址 端口号,当然也可以加上-v来显示这个过程,如果不指定ip地址的话就默认是0.0.0.0,相当于INADDR_ANY。       2. 客户端通过 nc 主机ip地址 端口号 连接服务器,连接成功...

2016-11-04 18:18:23

阅读数:7247

评论数:0

服务器端编程心得(一)—— 主线程与工作线程的分工

服务器端为了能流畅处理多个客户端链接,一般在某个线程A里面accept新的客户端连接并生成新连接的socket fd,然后将这些新连接的socketfd给另外开的数个工作线程B1、B2、B3、B4,这些工作线程处理这些新连接上的网络IO事件(即收发数据),同时,还处理系统中的另外一些事物。这里我们...

2016-11-04 14:04:35

阅读数:4278

评论数:5

服务器编程心得(四)—— 如何将socket设置为非阻塞模式

1. windows平台上无论利用socket()函数还是WSASocket()函数创建的socket都是阻塞模式的: SOCKET WSAAPI socket( _In_ int af, _In_ int type, _In_ int protocol ); SOCKET W...

2016-11-04 13:11:21

阅读数:15987

评论数:0

MySQL主机127.0.0.1与localhost区别总结

可能有很多朋友都会碰到一个问题不知道127.0.0.1与localhost有什么区别,但是有的时间会发现使用localhost连接不了,但是改成127.0.0.1即可了连接了,那么他们会有什么区别呢,下面我给大家介绍。 1. mysql -h 127.0.0.1 的时候,使用TCP/IP连接...

2016-11-04 11:19:47

阅读数:4347

评论数:0

关于linux条件变量的一点思考

引入条件变量的初衷 设想有这样一种应用场景: 有A、B两个线程同时递增一个整型变量v,线程C在变量v是3的倍数时,输入v的值。因为涉及到多个线程同时读写同一个变量,所以肯定需要使用互斥体mutex对变量v进行保护,即同一时刻只能有且只有一个线程对v进行修改。假设A、B、C三个线程得到cpu时间片几...

2016-11-01 17:21:00

阅读数:845

评论数:0

error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误。google了一下,是由...

2016-10-23 13:39:31

阅读数:441

评论数:0

CMake常用指令

cmake_minimum_required(VERSION 2.8) 检查cmake的版本,至少为2.8 project(helloworld) 工程名为helloworld aux_sou...

2016-10-20 17:49:03

阅读数:502

评论数:0

Shell 显示带颜色字体

Shell 显示带颜色字体 格式: echo “\033[字背景颜色;字体颜色m字符串\033[控制码” 如果单纯显示字体颜色可以固定控制码位0m。 格式: echo “\033[字背景颜色;字体颜色m字符串\033[0m”字背景颜色范围:40 - 49 40:黑 41:深红 42:绿...

2016-10-19 16:33:18

阅读数:1854

评论数:0

编写Linux系统下Daemon程序的方法步骤

一、引言 Daemon程序是一直运行的服务端程序,又称为守护进程。 本文介绍了在Linux下编写Daemon程序的步骤,并给出了例子程序。 二、Daemon程序简介 Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Daemon程序在后台运行,是因为它没有控制终...

2016-10-13 14:31:40

阅读数:976

评论数:0

linux下编译运行Apache源码

一 、 首先下载Apache源代码: http://httpd.apache.org/download.cgi下载完成下来的文件httpd-2.4.23.tar.gz 编译apache时出错: checking for APR… no configure: error: APR not f...

2016-10-10 16:15:51

阅读数:337

评论数:0

linux下登录mysql报错“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO“)

用安全模式登录并设置密码(密码设置成你自己的,这里我设置成了123456): [root@localhost ~]# mysqld_safe –user=mysql –skip-grant-tables –skip-networking & [1] 13454 [root@local...

2016-10-10 14:02:07

阅读数:1988

评论数:0

linux 命令行 光标移动技巧

看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动。在这里强烈建立适应GUI节目的开发者尝试一下在提示符下面工作。但是事情也不是那么简单,还是需要知道“如何去做”。 在单词之间跳转,使用Ctrl+左右键。 Ctrl+e则跳到页尾。 ctrl+k-删除当前光标后...

2016-10-10 10:12:01

阅读数:329

评论数:0

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