Redis源码学习之【Tcp Socket封装】
来源:互联网 发布:乐视视频无法连接网络 编辑:程序博客网 时间:2024/06/05 20:10
介绍
Redis对linux socket的封装,虽然在该封装中也含有对unix socket的封装,但是普遍来说使用的tcp socket。和上一篇的epoll的封装类似,都是通过调用底层的socket的函数完成一些列的方便的函数调用封装。
源码
anet.h anet.c
分析
主要包含以下几个封装函数(这里仅介绍关于Tcp socket的封装函数)
anetTcpconnect:创建socket并调用底层的connect进行连接。
anetTcpNonBlockConnect:和anetTcpConnect功能类似,但是设置连接的socket为非阻塞的。
anetRead:调用底层的read对socket中的内容进行读取。
anetWrite:调用底层的write向socket写入内容。
anetTcpServer:创建监听socket,并调用bind和listen启动服务器开始监听端口。
anetTcpAccept:调用accept,接收客户端的连接。
当然还有其他的辅助的函数,像是anetResolve解析地址,以及设置socket属性的一些函数如anetNonBlock anetTcpNoDelay anetTcpKeepAlive anetPeerToString等。
说明
这里的对socket的封装的主要目的是为了方便Redis的网络调用这里的函数主要被下一篇将要介绍的Redis网络通信实现所调用。
0 0
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【epoll封装】
- Redis源码学习之【epoll封装】
- TCP/Socket学习---TCP/IP协议栈与数据包封装
- muduo源码学习(19)-socket封装
- TCP SOCKET封装类
- linux源码-TCP/IP协议栈学习预备(1) 数据结构之各socket之间的关系
- Redis源码学习之【前言】
- Redis源码学习之【链表】
- Redis源码学习之【前言】
- Redis源码学习之【链表】
- redis源码学习之字典
- Redis 源码学习之 Redis 事务
- Java Socket 编程学习之 TCP
- Socket学习之解决TCP半包粘包问题
- Python学习之socket编程(基于tcp)
- 3.1C++学习之-socket(TCP)
- 新手
- 利用好PHP5.3的新特性,实现单例模式
- spring scheduled annotation 实例一
- 线程之pthread_barrier_create
- Redis源码学习之【epoll封装】
- Redis源码学习之【Tcp Socket封装】
- Redis源码学习之【网络通信框架】
- Spatial Pyramid的BOW和Pyramid HOG的多核
- Redis源码学习之【命令协议格式】
- 使用vfork函数时出现“总线错误”
- Redis安装启动
- 在OC中获取C的数据类型
- shell scripts学习(三)
- Redis常用命令