
Linux服务器编程
Barry__
勿在浮沙筑高台
展开
-
muduo网络库脉络分析(2)
转自:http://blog.youkuaiyun.com/Shreck66/article/details/50948878因为此篇博文是上篇博文的延续,所以读者在阅读此时最好能先去看一下muduo网络库脉络分析(1)Channel类其实在上篇博文讲完Acceptor类之后,我因该按照流程顺序接着讲TcpConnection类的,但是因为TcpConnection中包含一个很重要转载 2017-09-10 22:00:04 · 340 阅读 · 0 评论 -
muduo库整体架构简析
转自:http://www.cnblogs.com/gaorong/p/6476757.html muduo是一个高质量的Reactor网络库,采用one loop per thread + thread pool架构实现,代码简洁,逻辑清晰,是学习网络编程的很好的典范。 muduo的代码分为两部分,base和net,base部分实现一些基础功能,例如log, thread,转载 2017-09-10 21:57:02 · 346 阅读 · 0 评论 -
vmware linux和windows共享文件失效问题解决
背景描述:我在windows 10电脑上装了一个vmware11,vmware11里装了一个ubuntu16.04.3 server版,想要在windows下使用vs开发linux服务程序,然后在linux上编译运行(要知道给vs配置好linux头文件以后开发linux程序是何其方便,配合vmware文件共享,编码和编译简直不能太酸爽)遇到问题:使用vmware给linux虚拟机设原创 2017-09-26 20:44:39 · 11004 阅读 · 7 评论 -
编写Linux系统下Daemon程序的方法步骤
转自:http://blog.youkuaiyun.com/analogous_love/article/details/52806722一、引言 Daemon程序是一直运行的服务端程序,又称为守护进程。 本文介绍了在Linux下编写Daemon程序的步骤,并给出了例子程序。 二、Daemon程序简介 Daemon是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。一般说Dae转载 2017-09-17 21:22:07 · 443 阅读 · 0 评论 -
nc命令介绍
名字: nc - 连接、监听任意的TCP和UDP。 概要: nc [-46DdhklnrStUuvzC] [-i 间隔] [-p 源端口] [-s 源IP地址] [-T 服务类型] [-w 超时时间] [-X 代理协议] [-x 代理地址[:端口]] [主机名] [端口[s]]详细说明: nc(netcat)的功能使用是涉及到TCP或者UDP的时候。它可以打开TCP翻译 2017-09-17 21:17:44 · 16669 阅读 · 2 评论 -
muduo网络库中buffer的设计
转自:http://blog.youkuaiyun.com/shreck66/article/details/496183311.为什么非阻塞网络编程中应用层buffer是必须的非阻塞I/O(在这里可以理解为非阻塞I/O加T/O复用)的核心思想就是避免将当前线程阻塞在I/O系统调用上,这样可以使我们的I/O线程只阻塞在I/O复用函数上(epoll_wait或poll,select)使其原创 2017-09-17 16:11:33 · 717 阅读 · 0 评论 -
muduo网络库脉络分析(1)
转自:http://blog.youkuaiyun.com/shreck66/article/details/50945929去年看muduo网络库时没有总结博文,导致前段时间用muduo时发现好多东西都模模糊糊,于是就花时间又一次翻阅了muduo源码,并用此篇博文记录下其网络库整体脉络,以便是后来者入手起来更方便,同时也可用作自己以后复习的资料1.如何入手muduo库其实在这之前转载 2017-09-10 21:58:45 · 450 阅读 · 0 评论 -
使用Visual Studio 2017作为Linux C++开发工具
Visual Studio 2017微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/VS2017亮点很多,包括模块化安装、启动速度加快(第一次启动加快50%以上)、github插件、启动页完善、增强代码提示功能,等等,更多参考:https://www.visualstu转载 2017-04-09 17:45:39 · 8715 阅读 · 1 评论 -
cmake使用示例与整理总结
转自:http://blog.youkuaiyun.com/wzzfeitian/article/details/40963457本文代码托管于github cmake_democmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/bui转载 2017-09-13 22:17:08 · 230 阅读 · 0 评论 -
NAT详解
转自:http://blog.youkuaiyun.com/weiyuefei/article/details/522474971. IPv4协议和NAT的由来今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣。他们浏览新闻,搜索资料,下载软件,广交新朋,分享信息,甚至于足不出户获取一切日用所需。企业利用互联网发布信息,传递资料和订单,提供技术支持,完成日常办公。然而,In转载 2017-09-19 09:38:31 · 10264 阅读 · 3 评论 -
Centos 7中安装Python包管理工具——Pip
转自:http://blog.lxx1.com/1420pip 是一个常用的Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具。GitHub: https://github.com/pypa/pip Doc: https://pip.pypa.io/en/latest/在Centos 7中安装Python包管理工具—Pip时,使用 s...转载 2018-07-26 22:51:01 · 1319 阅读 · 0 评论 -
linux安装vim8.0以及配置vim plug
安装vim8.0由于后面需要安装YouCompleteMe,所以vim需要7.4.**(具体是几忘了)以上,并支持python2.6 or 3.7以上,索性直接安装vim8.0源码安装支持python的vim8.0(python如果没有,需要先安装,如果安装了其他版本的vim,先卸载,自行百度)下载vim源码git clone https://github.com/vim/vi原创 2017-12-11 19:21:10 · 14557 阅读 · 0 评论 -
nginx模块开发实战
转自:https://www.2cto.com/kf/201611/566004.html想要进行nginx模块开发,首先你需要比较熟悉C语言,其次你需要对HTTP协议有一定的了解。从配置开始Nginx主配置文件中主要包括六块:main,events,http,server,location,upstream 结构如下:?12转载 2017-11-23 16:29:12 · 806 阅读 · 0 评论 -
nginx编写http模块编译报错
背景:按照书上的例子编写config文件,ngx_http_mytest_module.c文件,并使用configure将模块编译进nginx现象:configure添加ngx_http_mytest_module模块的时候,提示config文件里找不到什么:not found ..原因:开发环境是win10电脑上用vmware搭建Ubuntu虚拟机,然后Ubuntu虚拟机和w原创 2017-11-22 21:19:01 · 634 阅读 · 0 评论 -
Nginx 定义自己的 http 模块
转自:http://blog.youkuaiyun.com/u012243115/article/details/46898573一、config文件编写 Nginx提供了一种简单的方式将第三方的模块编译到Nginx中。首先把源代码文件全部放到一个目录下,同时在该目录中编写一个文件用于通知Nginx如何编译本模块,这个文件名必须为config。然后,在configure脚本执行时转载 2017-11-22 21:04:47 · 1058 阅读 · 0 评论 -
Linux服务端编程经验
学习linux服务端编程的过程中跟一个拥有多年linux服务端编程经验的前辈请教了一番,有的地方理解的获取没有那么透彻,在这里记录一下,后期内功修炼的差不多了再回来看看是否有新的理解。主流服务器模式做过很多服务器项目,看过很多源码,现在主流服务器都是Reactor模式,下面是一个简单的epoll实现Reactor模式的例子http://blog.youkuaiyun.com/rankun1/a原创 2017-04-18 14:30:36 · 3991 阅读 · 2 评论 -
Jsoncpp的使用
转自:http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.htmlJsoncpp的使用JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, St转载 2017-10-13 09:44:12 · 308 阅读 · 0 评论 -
NAT穿透(UDP打洞)
转自:http://www.cnblogs.com/GO-NO-1/p/7241556.html1、NAT(Network Address Translator)介绍NAT有两大类,基本NAT和NAPT。1.1、基本NAT静态NAT:一个公网IP对应一个内部IP,一对一转换动态NAT:N个公网IP对应M个内部IP,不固定的一对一转换关系转载 2017-09-19 10:21:37 · 15594 阅读 · 0 评论 -
GDB常用命令分类说明
简介 GDB(GNU Debugger)是GCC的调试工具。其功能强大,现描述如下: GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事。 4.原创 2017-09-13 21:50:13 · 409 阅读 · 0 评论 -
linux下快捷启动关闭tomcat
在linux下搭建好tomcat之后,每次启动和关闭都要去tomcat的bin目录下执行./startup.sh和./shutdown.sh这是很不方便的,下面介绍如何像执行ls mv cp等命令一样启动,关闭,重启tomcat创建脚本脚本创建路径 /etc/init.d/tomcat 首先执行: vi /etc/init.d/tomcat 按 i 编辑,将下面原创 2016-10-14 16:41:04 · 4194 阅读 · 0 评论 -
Centos7.2下tomcat8 shutdown报错8005端口
最近遇到这个问题,在Centos7.2下搭建了一个tomcat8,开始用的挺好,突然有一次shutdown.sh关闭tomcat时报错了,里面有8005啥的以后再也用不了tomcat了,shutdown.sh永远失败,重启服务器也不行(云服务器)最后找到原因:tomcat在启动时会使用如下几个端口其中8005端口使用的比较晚,也就是说,我们刚startup.sh的时候,原创 2016-10-13 10:52:08 · 6663 阅读 · 0 评论 -
CentOS7 Tomcat 启动过程很慢,JVM上的随机数与熵池策略
1. CentOS7 Tomcat 启动过程很慢在centos启动官方的tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的:14-Jul-2016 04:14:22.900 INFO [localhost-startStop-1] org.apache.catalina.util.SessionIdGenerator.crea转载 2016-10-14 15:04:56 · 4612 阅读 · 0 评论 -
Linux下JDK和Tomcat安装
转自:http://blog.youkuaiyun.com/tongzidane/article/details/44035087 Linux下JDK和Tomcat安装下载地址http://www.oracle.com/technetwork/java/javase/downloads/index.htmlhttp://download.oracle.com/otn-pub/jav转载 2016-10-12 14:12:39 · 405 阅读 · 0 评论 -
Linux(Centos)之安装tomcat并且部署Java Web项目
转自:http://www.cnblogs.com/hanyinglong/p/5024643.htmlLinux(Centos)之安装tomcat并且部署Java Web项目阅读目录1.准备工作2.在Linux下安装Tomcat8.03.Linux中设置tomcat的服务器启动和关闭4.Linux中设置tomcat的开机启动5.给tomcat设置用转载 2016-10-12 13:47:35 · 833 阅读 · 2 评论 -
linux上传下载文件工具lrzsz
安装两种安装方式yum安装(推荐)yum install lrzsz -y注意:安装完后 直接可使用 rz sz自己编译安装针对centos x.x 版 lrzsz安装配置mkdir -p /usr/src/toolscd /home/ryan/toolswget http://down1.chinaunix.net/distfiles/lrzsz-0.12原创 2016-10-11 15:20:59 · 2576 阅读 · 1 评论 -
Linux常用基本命令
转自:http://blog.youkuaiyun.com/xiaoguaihai/article/details/8705992Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题。1、显示日期的指令: date转载 2016-09-23 10:19:59 · 309 阅读 · 0 评论 -
Linux基本命令笔记
转自:http://www.cnblogs.com/laov/p/3541414.html#zhilingLinux简介及Ubuntu安装常见指令系统管理命令打包压缩相关命令关机/重启机器Linux管道Linux软件包管理vim使用用户及用户组管理文件权限管理 大牛笔记-www.weixuehao.com转载 2016-09-23 10:18:29 · 553 阅读 · 0 评论 -
linux动态库基础
转自:http://blog.youkuaiyun.com/feixiaoxing/article/details/7203441【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 动态链接库不是linux独有的特性,在windows下面也存在这样的特性。一般来说,windows下面的动态连接库是以*.dll作为结尾的,而linux下面的转载 2016-09-20 14:27:31 · 417 阅读 · 0 评论 -
vim编码设置
vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,转载 2016-10-15 11:36:18 · 396 阅读 · 0 评论 -
将tomcat欢迎页面修改为自己项目的主页
转自:http://www.ynpxrz.com/n1037466c2022.aspx1.我在$tomcat/webapps/下建了个myjsp目录作为我网站的默认目录,在myjsp中有一个a.jsp文件,该文件要作为我网站的默认主页。2.修改配置文件:首先,修改$tomcat/conf/server.xml文件。在server.xml文件中,有一段如下:……转载 2016-10-20 19:52:49 · 7148 阅读 · 1 评论 -
linux 常用命令分类整理
转自:http://blog.youkuaiyun.com/orclight/article/details/86455451.系统的关机、重启以及注销 shutdown -h now 关闭系统(1) shutdown -h hours:minutes & 按预定时间关闭系统 shutdown -c 取消按预定时间关闭系统 shutdown -r now 重启(1)转载 2017-08-28 09:46:35 · 419 阅读 · 0 评论 -
linux常用命令
转自:http://www.cnblogs.com/gaojun/p/3359355.html1、ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等 常用参数搭配: ls -a 列出目录所有文件,包含以.开始的转载 2017-08-28 09:45:11 · 428 阅读 · 0 评论 -
Select和epoll的区别
转自:http://blog.youkuaiyun.com/mafuli007/article/details/7233304当一个节点和多个节点建立连接时,如何高效的处理多个连接的数据,下面具体分析两者的区别。1. select函数函数原型:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *except转载 2017-04-18 13:00:50 · 852 阅读 · 0 评论 -
为什么线程同步的时候pthread_cond_t要和pthread_mutex_t同时使用
转自:http://blog.sina.com.cn/s/blog_6ffd3b5c0100mc3n.html举一个例子(http://blog.youkuaiyun.com/KataDoc360/archive/2009/02/16/3897957.aspx):pthread_mutex_t count_lock;pthread_cond_t count_nonzero;unsi转载 2017-04-09 22:45:42 · 1178 阅读 · 0 评论 -
epoll实现Reactor模式
转自:http://blog.youkuaiyun.com/analogous_love/article/details/53319815最近一直在看游双的《高性能Linux服务器编程》一书,下载链接: http://download.youkuaiyun.com/detail/analogous_love/9673008书上是这么介绍Reactor模式的:转载 2017-04-09 22:41:56 · 7762 阅读 · 0 评论 -
linux服务器编程之select
转自:http://www.cnblogs.com/coser/archive/2012/02/29/2373478.htmlselect函数该函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或是多个事件发生或经历一段指定的时间后才唤醒它。我们调用select告知内核对哪些描述字(就读、写或异常条件)感兴趣以及等待多长时间。我们感兴趣的描述字不局限于套接口,任何描原创 2017-04-08 17:52:08 · 367 阅读 · 0 评论 -
linux select函数详解
linux select函数详解在Linux中,我们可以使用select函数实现I/O端口的复用,传递给 select函数的参数会告诉内核: •我们所关心的文件描述符 •对每个描述符,我们所关心的状态。(我们是要想从一个文件描述符中读或者写,还是关注一个描述符中是否出现异常) •我们要等待多长时间。(我们可以等待无限长的时间,等待固定的一段时间,或转载 2017-04-09 14:33:13 · 920 阅读 · 0 评论 -
Linux下select, poll和epoll IO模型的详解
转自:http://blog.youkuaiyun.com/tianmohust/article/details/6677985一).Epoll 介绍Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select 相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程转载 2017-04-08 18:01:02 · 1485 阅读 · 0 评论 -
makefile入门
转自:http://blog.youkuaiyun.com/koches/article/details/7609361对于程序设计员来说,makefile是我们绕不过去的一个坎。可能对于习惯Visual C++的用户来说,是否会编写makefile无所谓。毕竟工具本身已经帮我们做好了全部的编译流程。但是在Linux上面,一切变得不一样了,没有人会为你做这一切。编代码要靠你,测试要靠你,最后自动化编译转载 2016-09-20 14:17:33 · 290 阅读 · 0 评论