随笔分类 -  Linux学习

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

点击右上角即可分享
微信分享提示