c Linux网络编程学习笔记(二)socket操作

这里是本人对Linux网络编程的学习做一个记录,主要参考书籍如下:

  • Linux高性能服务器编程
  • Unix网络编程 卷1:套接字联网API
    socket是一个实现内核空间与用户空间的通信的接口。

一、socket服务端

提供网络服务的一端

1、socket服务端操作过程
(1)图解socket服务端操作过程

光看图不过瘾?来上一锅代码

(2)代码实现socket服务端操作过程
  1. #include &l

c Linux网络编程学习笔记(一)网络编程基础API

这里是本人对Linux网络编程的学习做一个记录,主要参考书籍如下:

  • Linux高性能服务器编程
  • Unix网络编程 卷1:套接字联网API
    socket是一个实现内核空间与用户空间的通信的接口。

一、四层网络模型

二、socket地址API

(1)通用socket地址

socket地址结构体

  1. //头文件:<bits/socket.h>
  2. struct sockaddr {

c 菜鸟从Redis源码学习C语言之Redis双向链表

双向链接是C语言中常用的一种数据结构,是链表的一种。链表由若干个结点组成。

相关文件:adlist.h,adlist.c

其结构如下:

一、双向链接相关结构体的声明

1、链表结点

组成链表的基本组成单元(可以称为链表元素)

  1. typedef struct listNode {
  2. struct listNode *prev;
  3. struct listNode *next;
  4. void *va

c 菜鸟从Redis源码学习C语言之Redis简单动态字符串

在Redis中,除了一些用到字符串字面量的情况外,其他都是通过简单动态字符串结构体来代替c字符串,当然是为了更加方便的操作Redis字符串,比如Redis中的键的名称存储使用的就是Redis字符串。

一、sds字符串声明

1、声明sds字符串:即一个c字符串指针
  1. typedef char *sds;
  • typedef是用来定义类型别名的,其用法是:typedef 原类型 自定义类型

上面的语句也可以是

c 菜鸟从Redis源码学习C语言

Redis是一款高效的内存缓存软件,以支持多种数据类型、支持持久化以及高性能著称,因此通过它的源码,来学习C语言是一个不错的主意。以C语言菜鸟身份,以Redis3.0.7为主版本对Redis进行浅显的原理分析。

虽然当前Redis的最新版本为Redis3.2.x系列,但相对而言,市面上使用较多的还是Redis3.0.x系列,而且Redis3.0.x系列的代码更加易懂,因此,采用Redis3.0.7