Redis源码学习之【Tcp Socket封装】
2013-03-18 08:48
441 查看
介绍
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网络通信实现所调用。相关文章推荐
- redis源码学习3 启动、配置及socket
- TCP/IP源码学习(47)——socket与VFS的关联(1) 2 http://blog.chinaunix.net/uid-23629988-id-3080166.html
- TCP/IP源码学习(47)——socket与VFS的关联
- TCP/Socket学习---TCP/IP协议栈与数据包封装
- muduo源码学习(19)-socket封装
- Redis源码学习之【epoll封装】
- 结合redis设计与实现的redis源码学习-15-TCP网络连接(anet.c)
- Redis源码学习之【epoll封装】
- redis启动错误-- Creating Server TCP listening socket *:6379: listen: UnKnown error
- JAVA基础学习(二十四)--Socket基础一UDP与TCP的基本使用
- TCP发送源码学习(1)--tcp_sendmsg
- 启动redis出现Creating Server TCP listening socket 127.0.0.1:6379: bind: No error
- 结合redis设计与实现的redis源码学习-4-dict(字典)
- 黑马程序员_学习笔记:15) 网络编程:Socket(udp、tcp)
- redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error--转载
- JAVA Socket编程学习10--解决TCP粘包分包问题
- 黑马程序员-JAVA学习之TCP网络编程篇,Socket使用
- JAVA学习笔记Day24——javaTCP UDP网络编程Socket总结
- TCP/IP源码学习(52)——TCP的连接过程的实现(1)
- TCP发送源码学习(3)--tcp_transmit_skb