高性能服务器开发
文章平均质量分 79
网络通信tcp、udp和http和nginx、libevent、thrift等开源框架
Linux 环境编程、LUA语言
多线程、多进程并发处理;内存池、线程池、epoll等高并发技术
mysql存储、事务和分库分表和读写分离等架构设计
工程管理和项目管理
dearQiHao
数据容灾备份
展开
-
013.Makefile
目录Makefiel 编写程序的编译和链接Make 工作原理通常在一个项目的规则是:Make工作流程Make变量更省事的方式,让Make 自动推导Makefiel 编写我们之前其实已经写过一些makefile了,只是没有具体介绍,本篇博客就详细的介绍一下Makefile。程序的编译和链接使用C、C++编写可执行程序,首先要把源文件编译成中间代码文件,Linux下是 .o 文件,就是 Object File,这个动作叫做编译。然后再把大量的 .o文件合成执行文件,这个动作叫作链接。一个项目,拥有原创 2021-05-14 23:47:28 · 2006 阅读 · 2 评论 -
012.成型版回声服务器
目录带错误处理的回声服务器的实现server.cppclient.cpperror_handling.cpperror_handling.h遇到的问题,自定义函数显示未定义的引用。问题分析:同类问题:解决方法:编写我们的Makefile测试:正常测试:先关掉服务器,在关掉客户端马上在连接:其余测试:回声服务器的结语及下一部分的展望带错误处理的回声服务器的实现结合之前的博客我们已经知道了什么是网络编程以及如何通过调用socket函数来编写一个回声服务器,这个过程中我们可能遇到了很多的问题,但是我们都一点一原创 2021-05-06 23:26:51 · 4525 阅读 · 4 评论 -
011.socket函数错误封装处理
在 008.一个简单的网络服务器开发----回声服务器中所实现的服务器功能简单,简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功。如 010所示,如果我们因为自己代码写的有些问题那么光是排查错误就够我们受的了。出错的可能千千万,所以我们必须进行出错处理,这样一方面可以保证我们的程序逻辑正常,另一方面可以迅速定位到故障信息。为了使错误处理的代码不影响主程序的可读性,我们封装的 socket相关的系统函数加上错误处理代码包装秤新的函数,做成一个新的模块,名为 error_handlinger原创 2021-05-06 14:17:05 · 3064 阅读 · 3 评论 -
010.第一个回声服务器可能遇到的问题——connect函数
目录由connect函数使用不当导致的小错误server.cclient.c最终效果:新server.c:主要用于排错在回顾connect函数:完整博客:由connect函数使用不当导致的小错误博客说明:在008.一个简单的网络服务器开发----回声服务器篇博客中我们实现了一个最为简单的回声服务器,当时我们为了突出程序的逻辑性,从而没有对部分函数进行错误检查那么博主在这里指出一个大家可能会遇到的一个经典错误,而且这个错误还不是太好排查的,那就是忽略了connect函数的返回值从而导致客户端发了消息但是原创 2021-04-28 11:12:29 · 2968 阅读 · 0 评论 -
009.共享目录下VS编写的程序在linux下打开出现中文乱码
目录问题描述:解决方案:notpad++将代码字符集改变为utf-81.在windows中找到共享文件夹,右键打开方式notpad++,点击编码,更换为转为utf-8编码.2.linux下查看server.cpp,发现成功解决。3.vs2019查看代码:发现也可以问题描述:在008.一个简单的网络服务器开发----回声服务器,我们虽然实现了项目的需求但是当我们在linux下打开server.cpp文件看看vim server.cp对比着windows发..原创 2021-04-28 10:56:49 · 3038 阅读 · 2 评论 -
008.一个简单的网络服务器开发----回声服务器
目录简单的回声服务器实现项目需求技术分析博主相关的技术博客网络编程之 socket编程网络编程函数小总结与初识socket网络编程之bind()的未解之谜网络编程之 字节序和深入理解bind()函数网络编程之 listen()函数的使用与三次握手的理解socket编程之 accept函数的理解socket编程之 connect()函数基于 Linux 的文件操作 网络编程的最后一环简单的回声服务器实现项目需求 实现回声服务器的客户端/...原创 2021-04-26 09:56:42 · 3464 阅读 · 0 评论 -
007. VMware 创建共享文件夹
目录创建共享文件夹查看共享文件夹的位置windowslinux创建文件再到Windows去看:思考与改进:除了使用Vs2019链接linux之外,我们还可以使用共享文件夹的方式来编写:创建共享文件夹1.工具栏点击虚拟机->设置->选项-》共享文件夹(博主之前已经添加过大家第一次打开应该是显示已经禁用,)2.下一步:3.添加路径4.完成查看共享文件夹的位置windowswindows的共享文件夹的位置就是最开始让你选择的那个原创 2021-04-26 02:08:29 · 3572 阅读 · 1 评论 -
006.gcc编译器
gcc是什么?gcc所遵循的部分约定规则:.c为后缀的文件,C语言源代码文件; .a为后缀的文件,是由目标文件构成的档案库文件; .C,.cc或.cxx为后缀的文件,是C++源代码文件且必须要经过预处理; .h为后缀的文件,是程序所包含的头文件; .i为后缀的文件,是C源代码文件且不应该对其执行预处理; .ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;.m为后缀的文件,是Objective-C源代码文件; .mm为后缀的文件,是Objective-C++源代码文件;.o为后缀的原创 2021-04-25 02:20:16 · 6239 阅读 · 0 评论 -
005.在Windows下编程让效率起飞
不少朋友一开始在Linux下用vim肯定是会像博主一样痛苦,vim没有智能提示,有的函数参数又臭又长初学者根本就记不住,还好vs2019已经直接支持远程连接Linux并且在vs上直接编译了。windows开发Linux方式:先用编辑器编写源代码然后进入Linux 系统,使用gcc编译器(后面会讲),对源代码进行编译运行。熟练后推荐使用VS2019 开发Linux C++ 程序第一步:将自己的Ip地址设为静态IP这是十分有必要的,想当初博主在做云平台搭建的时候就...原创 2021-04-24 14:48:22 · 2235 阅读 · 0 评论 -
004.vim入门
vimvim是一个文本编辑程序没有菜单,只有命令,且命令繁多基本工作模式命令模式移动光标h: ← 左移l: → 右移j: ↓ 下移k: ↑ 上移gg: 光标移动文件开头G: 光标移动到文件末尾0: 光标移动到行首$: 光标移动到行尾123G:跳转到第123行删除x: 删除光标后一个字符,相当于 DelX: 删除光标前一个字符,相当于 Backspacedw: 删除光标开始位置的字,包含光标所在字符光标必须移动到删除单词的首字符上d0:原创 2021-04-24 10:58:56 · 2146 阅读 · 0 评论 -
003.linux开发环境配置及linux极速入门
相信大家来学服务器开发应该都是安装好了linux系统的吧,博主使用的是ubuntu 16.04版本。centos也是可以的,不做强制要求。如果大家装好了原始的linux版本并且能够连网的话(不能联网或者未安装linux系统,实在需要可给博主留言,博主可以单独出一个教程)1.shell命令入门 要想玩转linux系统我们不能靠鼠标了,靠的是我们的键盘一行一行的敲击命令,而命令也不是毫无章法,你总不可能直接敲个什么中文:给我创建个文件夹、开机、关机等奇葩命令。。 那...原创 2021-04-24 10:35:09 · 2217 阅读 · 0 评论 -
002.操作系统的选择
目录1.为什么要选择Linux1.1市场价值1.2市场应用2.学完Linux服务器开发能做什么1.为什么要选择Linux无论你信与不信,Linux 已经成为这个世界上增长最迅速的操作系统!在服务器领域,IBM、HP、Novell、Oracle 等厂商对Linux 系统提供了全方位的支持。2004年,IBM宣布其全线服务器均支持Linux,思科公司在网络防火墙和路由器中也使用了定制的Linux,阿里云也开发了一套基于Linux的智能操作系统“YunOS”,...转载 2021-04-24 01:26:50 · 2430 阅读 · 0 评论 -
001.从零到1之Linux高性能服务器开发
作者之前也写了很多关于socket编程以及一些多进程多线程的博客了,所以作者打算在这个新的专栏开始。完成一个完整的项目。涉及的内容:(有可能后续会添加或者删除,按照项目的进度来定)shellsocket网络编程linux系统编程高并发部分框架的使用线程池内存池nginxmysql存储、事务和分库分表和读写分离等Lua暂定是这些,当然整个项目既然是从0到1那么就会从最开始的shll开始到最后的完整的项目结束,也算是博主对自己大学计算机生活画上一个圆满的句号。项目知识点会与博主之前原创 2021-04-24 01:02:22 · 2204 阅读 · 0 评论