专注于linux,网络安全

积一时之跬步,臻千里之遥程,非宁静无以致远,夫学须静也,才须学也,非学无以广才,非志无以成学...

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

linux编程学习目录

参考资料: 《UNIX环境高级编程第三版》 《Linux/UNIX系统编程手册》 《UNIX网络编程(第1卷:套接口API)》 《TCP/IP详解卷一》 Linux 学习交流群: 610441700 ,欢迎加群一起讨论 系统编程 文件I/O 1-文件IO—open/close函数 2-...

2018-07-22 23:13:33

阅读数:642

评论数:0

数据结构基础学习笔记目录

参考资料: 《数据结构》—— 武汉大学(中国大学MOOC) 《数据结构基础》课程 —— 烟台大学计算机与控制工程学院 数据结构的基本概念 1-数据结构的内容 2-数据结构基本概念 3-数据的逻辑结构 4-逻辑结构的二元组表示方法 5-抽象数据类型(ADT) 6-算法及其描述 7...

2018-05-30 23:54:24

阅读数:683

评论数:0

计算机网络学习目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》 网络基础 1-计算机网络常用概念 2-计算机常用通信指标-上 3-计算机常用通信指标-下 4-计算机网络常用性能指标 5-OSI网络通信模型 6-tcp/ip协议栈发展史...

2018-04-30 19:06:16

阅读数:461

评论数:0

tcp/ip协议学习目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》 《tcp/ip详解卷一》 写在开头:tcp/ip学习目录主要是记录自己的计算机网络的学习过程,提升自己,为后期深入学习linux网络编程打下扎实的基础,同时也希望这些学习笔记也能帮助到更多像我一样的对计算机网络感兴趣...

2018-04-26 23:14:37

阅读数:991

评论数:3

ip地址学习笔记目录

参考书籍: 《tcp/ip协议族第四版》 《计算机网络第七版》 写在开头:我尽量用通俗易懂的方式,比较全面的介绍ip地址相关知识,让大家看的轻松点,也希望大家看完后能掌握ip地址规划,ip地址学习本身不难,难的是ip地址中的知识点比较零碎,而每一部分的新知识点都和前面的有着紧密联系(没...

2018-04-14 16:54:36

阅读数:261

评论数:0

nginx+keepalived学习目录

参考资料: 《keepalived权威指南》 《深入理解Nginx:Nginx模块开发与架构解析第二版》 Nginx开发从入门到精通:http://tengine.taobao.org/book/ keepalived工作原理和配置说明:http://outofmemory.cn/wiki...

2018-04-09 23:00:28

阅读数:210

评论数:0

16-基于udp的客户端/服务端通信

1. 使用udp协议通信 在此之前,我们基于TCP的客户端/服务端通信示例是有连接方式的,客户端会先调用connect发起连接,当两端tcp连接建立完成,然后服务端调用accept接受客户端的连接,通过套接字开始通信。 UDP协议是无连接不可靠的,没有被动套接字和主动套接字之分,客户端和服务端...

2018-10-22 11:15:11

阅读数:128

评论数:0

15-SO_RCVBUF和SO_SNDBUF套接字选项

1. 套接字缓冲区 对于tcp协议来说,客户端和服务端在建立tcp连接的时候,双方会通告自己的接收窗口大小(告诉对方自己能接收的数据大小),然后双方就会根据接收窗口来调整自己的发送窗口大小。 如果你已经忘的差不多了,请参考: 19-tcp连接建立 , 如果你完全看不明白请参考:tcp/ip协议...

2018-10-14 00:12:36

阅读数:110

评论数:0

14-改写tcp服务器

1. 使用select改写tcp服务器 在此之前,回顾一下多进程并发型服务器通信过程,并发型服务器的做法是针对每一个客户端请求,服务器的父进程就fork创建一个子进程来处理客户端的请求。如果有大量的客户端请求的话,那么服务器也需要创建大量的子进程来处理请求,这将会消耗服务器大量的系统资源。  ...

2018-10-13 16:05:57

阅读数:56

评论数:0

数据结构基础心法

根据数据结构学习目录整理而成的知识图谱,还需完善。  

2018-10-09 22:26:57

阅读数:45

评论数:0

13-select重写客户端和tcp优雅关闭

  在阅读此篇之前,请先看完第11篇的一小节,传送门:11-服务端进程终止和SIGPIPE信号   1. 服务器进程终止的问题 在第11篇中的第1小节中,tcp客户端需要同时处理两个输入:标准输入和tcp套接字,tcp客户端代码如下所示: //循环读写数据 while (1) { ...

2018-10-09 22:19:53

阅读数:107

评论数:0

46-内存映射的保护和同步

1. 保护权限 mmap函数的prot参数可指定内存映射区的保护权限,例如指定PROT_READ和PROT_EXEC,在调用open打开文件就应该指定O_RDONLY或者O_RDWR。如果指定了PROT_WRITE,打开的文件应该使用O_WRONLY或者O_RDWR。   由于一些硬件架构对...

2018-10-06 13:39:21

阅读数:207

评论数:0

45-内存映射的陷阱

       本篇将介绍内存映射过程中的一些系统分页边界陷阱,可助你打通任督二脉,掌握内存映射基本的使用和出错处理。   1. 第一种情况 之前有说过在调用mmap函数创建内存映射时,建议指定参数length最好是系统内存分页的整数倍,虽然这并不是强制的,但这么做当然是有原因的,如果参数le...

2018-10-06 09:34:38

阅读数:132

评论数:0

44-共享文件映射

1. 文件映射 内存映射主要分两种:文件映射和匿名映射。 上一篇讲的就是文件映射,一般创建文件映射需要以下几个步骤: 1. 通过open函数打开一个文件,获得其文件描述符 2. 将文件描述符作为mmap函数的参数传入                         执行完以上步骤后...

2018-10-05 17:53:53

阅读数:77

评论数:0

43-初窥内存映射mmap

1. 文件通信 如果你已经完成了进程间通信的学习,相信你对进程间通信有了一个初步的解了。由于进程之间是相互独立的,不能相互访问,进程之间想要通信必须借助内核空间,因为内核空间对于进程之间是共享的。 像这样的进程间通信的方式有很多种,例如管道、信号、共享内存、消息队列、套接字、命名管道等,在li...

2018-10-04 19:51:10

阅读数:98

评论数:0

42-使用flock文件锁

1. flock函数 flock函数是专门用于实现对文件加锁的,与fcntl不同的是,flock系统调用最初是源自BSD的,而fcntl则是源自System V,flock是对整个文件进行加锁,而fcntl不仅可以对整个文件加锁,还可以对文件部分区域加锁,更加具有灵活性。  flock - ...

2018-10-03 16:04:47

阅读数:62

评论数:0

44-http协议

参考资料: 《Web性能权威指南》 《HTTP权威指南》   1. http协议概述 http协议全称为超文本传输协议(HTTP,HyperText Transfer Protocol),是基于tcp协议的一个应用层协议,主要定义web浏览器和web服务器之间交换数据的过程以及数据的格式...

2018-10-02 20:51:13

阅读数:62

评论数:0

41-fcntl设置文件锁

1. 文件锁 当多个进程打开同一文件进行读写时可能会出现数据混乱的问题,原因在于进程间共享同一文件读写指针位置,也就是f_pos(关于f_pos参考:4-文件描述符与打开的文件之间的关系的第三小节file结构体)。 解决这个问题的方法有很多,比如可以使用信号量完成进程同步,但通常使用文件锁会更...

2018-10-02 14:28:01

阅读数:81

评论数:0

40-System V——信号量的细节问题

1. 多个进程操作信号量 假设此时有多个进程在请求信号量发生阻塞时,且每个进程请求信号量减去的值都是一样的,那么到底哪个进程能继续执行是不确定的,这取决于调度算法。如果在阻塞的进程中,每个进程请求信号量减去的值都是不一样的,那么则会按照先满足条件的先执行的顺序进行。 例如此时有A和B两个进程阻...

2018-10-01 22:49:47

阅读数:107

评论数:0

39-System V——信号量

1. 什么是信号量    前面学过的System V IPC两种进程通信方式:共享内存和消息队列都是用于在进程间对共享区域的数据的交换传递来实现进程间通信,如果有多个进程同时向共享内存写数据可能就会出现数据混乱的问题。    信号量也是System V IPC的一种通信方式,和其他IPC方式不同...

2018-10-01 20:57:29

阅读数:160

评论数:0

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