随笔分类 - Linux学习
学习Linux服务器开发的相关知识
摘要:上一篇文章我们讲了一个异步的线程池大概需要如何去实现,现在的话,我们如何来解析一个UDP的包。 环境的搭配 这个环境的问题困扰了很久,这个netmap已经不再更新了,支持Ubuntu16.04-Ubuntu18.04的系统内核,我们需要按照这样的步骤去安装我们的netmap 建立Ubuntu虚拟机的
阅读全文
摘要:今天分享一个异步请求池的例子。 首先我们先看一个正常的阻塞的DNS解析的例子。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <fc
阅读全文
摘要:UDP主要用在哪两个方面 游戏 音视频通话 为什么要使用UDP? 实时性的考虑,丢包重传,TCP协议栈重传无法控制,UDP重发可以自定义策略。 在DNS查询的时候,也使用UDP,对资源的考虑。 如何做到可靠性连接? ack机制 重传机制 重传策略 序号机制 重排机制 窗口机制 TCP和UDP的选择
阅读全文
摘要:TCP Posix API的理解 我们主要从TCP连接讲解整个的流程。 连接的建立 消息的收发 连接的断开 连接的建立 先看一下一个TCP server的创建过程。 #include<stdio.h> #include<sys/socket.h> #include<netinet/in.h> #in
阅读全文
摘要:网络编程主要关注的一些问题 主要关注3个方面的问题 连接的建立 连接的断开 消息的发送和到达 连接的建立 主要分为两种情况:服务器处理接受客户端的连接;服务端作为客户端的连接第三方服务; //这是服务端接受客户端连接的时候;(三次握手完毕) int clientfd=accept(listenfd,
阅读全文
摘要:就这上篇文章的代码,我们会继续实现以下websocket的协议。 为什么要使用websocket呢? 它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。 其他特点包括: (1)建立在TCP协议之上,服务器端的实现比较容
阅读全文
摘要:我们继续我们的HTTP服务器的实现(使用别的代码来实现), 这个HTTP服务器的实现,我们主要就是关注TCP服务器中的recv还有send的处理。 首先,看一下HTTP,我们在用浏览器访问我们的TCPserver的时候,会收到什么样的请求。 这是直接访问端口的时候,返回的数据,我们在随便输入一个地址
阅读全文
摘要:我们紧接着上篇文章,看看我们上节课的代码有什么问题? 可以明显的看出来上节课的代码公用了一个同样的缓冲区进行读写,正常的情况下我们需要封装一个结构体,让每个对应的客户端的FD都有独立的结构进行读写还有接收连接。 具体的结构如下: struct sock_item { //客户端的fd int fd;
阅读全文
摘要:我们继续上篇的文章继续更新我们的代码。 首先就是介绍一下epoll的三个函数。 epoll_create epoll_ctl epoll_wait 如何去理解这3个函数,我是这样去理解这个函数, 就像我们去取快递一样,之前的Select模型,是通过轮询的方式一直去循环遍历客户端FD的列表,而EPOL
阅读全文
摘要:我们知道网络IO模型一共有5种,这里我们主要讨论同步IO和select多路复用的情况。 我们先从一个简单的TCP服务器的代码出发,来讨论一下这个是怎么实现的。 一个十分简单的TCP服务器 一个简单的TCP的服务器的建立流程是这样 建立SOCKET 绑定端口 监听 接受连接 接受消息 发送消息 关闭连
阅读全文
摘要:重点内容 linux基础命令和工具 CPU性能监控 内存性能监控 文件IO性能监控 网络IO监控 1 linux基础命令和工具 1.1 Grep搜索字符 grep命令用于在文件中执行关键字搜索,并显示匹配效果。 一些常见的选项 | 参数 | 作用 | | | | | -c | 仅显示找到的行数 |
阅读全文
摘要:git是什么 git是一个分布式版本控制工具,github是代码托管平台。 git有什么用 保存文件的所有修改记录 使用版本号进行区分 随时可浏览历史版本记录 可还原到历史指定版本 对比不同版本的文件差异 为什么要用git? 多人协作开发一个大型项目 每个人都在代码库下载代码,然后进行修改,把大家不
阅读全文
摘要:下面我们来介绍Cmake Cmake 我们着重介绍一下CMAKE,是因为CMAKE现在用的人比MAKEFILE多一些,也更好理解,编写一些。 1 安装 cmake 1.1 卸载已经安装的旧版的CMAKE【非必需】 apt-get autoremove cmake 1.2 文件下载解压: wget h
阅读全文
摘要:Makefile/cmake/configure 重点学习Cmake 首先是简单的MakeFile入门 1.1 简单Makefile 范例1.1 all: @echo "Hello all" test: @echo "Hello test" 运行结果如下 范例1.2 test: @echo "hel
阅读全文
摘要:Xshell的安装和连接 由于我们打算通过Xshell进行命令的输入,就不再进行VMWARE-TOOLS的安装。 我们直接进行安装Xshell 并开始连接我们创建的创建的虚拟机 我们可以通过XshelL的官网申请使用家庭和个人的免费版进行使用。 下载安装完毕后,我们就要开始进行连接 我们已经连接成功
阅读全文
摘要:我们使用VMWARE来安装Debian11系统来进行我们的LINUX学习 [ ] Debian虚拟机的安装 [ ] vmware-tools的安装 [ ] xShell的安装使用 [ ] samba的配置 [ ] gcc环境的配置 Debian虚拟机的安装 前面创建虚拟机的过程我就省略了 选择第一项
阅读全文