Linux Socket编程
国境之南Fantasy
Coder
展开
-
为什么使用getaddrinfo()函数
在IPv6的应用中getaddrinfo()是很常见的,最常见的形式是:[cpp] view plaincopyaddrinfo hints; addrinfo *res = NULL; memset(&hints,0,sizeof(hints)); hints.ai_family=AF_INET6;转载 2015-04-17 16:55:42 · 1215 阅读 · 0 评论 -
Linux Socket学习之:套接口选项 getsockopt 、setsockopt
本文将会专注于下列主题:如何使用getsockopt(2)函数获得套接口选项值如何使用setsockopt(2)函数设置套接口选项值如何使用这些常用的套接口选项得到套接口选项有时,一个程序需要确定为当前为一个套接口进行哪些选项设置。这对于一个子程序库函数尤其如此,因为这个库函数并不知道为这个套接口进行哪些设置,而这个套接口需要作为一个参数进行传递。程序也许需要知道类似于转载 2015-04-17 19:02:12 · 1175 阅读 · 0 评论 -
浅谈 NCSI 及其在 Linux 上的实现
NCSI(Network Controller Sideband Interface)是一个由分布式管理任务组(Distributed Management Task Force, DMTF)定义的用于支持服务器带外管理的边带接口网络控制器的工业标准,由一个管理控制器和多个网络控制器组成。DMTF 为 NCSI 定义了完整的基于以太网的控制命令请求和应答标准,此外,NCSI 还具备单线程,超时重传转载 2015-11-27 17:35:33 · 12384 阅读 · 0 评论 -
使用事件驱动模型实现高效稳定的网络服务器程序
几种网络服务器模型的介绍与比较围绕如何构建一个高效稳定的网络服务器程序,本文从一个最简单的服务器模型开始,依次介绍了使用多线程的服务器模型、使用非阻塞接口的服务器模型、利用select()接口实现的基于事件驱动的服务器模型,和使用libev事件驱动库的服务器模型。通过比较各个模型,得出事件驱动模型更适合构建高效稳定的网络服务器程序的结论。5 评论顾转载 2016-10-25 09:37:26 · 572 阅读 · 0 评论 -
Linux IO模式及 select、poll、epoll详解
注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间转载 2016-10-25 09:45:40 · 398 阅读 · 0 评论 -
linux下使用TCP存活(keepalive)定时器
linux下使用TCP存活(keepalive)定时器 一、什么是keepalive定时器?在一个空闲的(idle)TCP连接上,没有任何的数据流,许多TCP/IP的初学者都对此感到惊奇。也就是说,如果TCP连接两端没有任何一个进程在向对方发送数据,那么在这两个TCP模块之间没有任何的数据交换。你可能在其它的网络协议中发现有轮询(polling),但在TCP中它不存在。言外之意就是我们转载 2017-03-03 16:24:38 · 9055 阅读 · 0 评论 -
AF_INET和PF_INET的细微不同
AF_INET和PF_INET的细微不同在写网络程序的时候,建立TCP socket:sock = socket(PF_INET, SOCK_STREAM, 0);然后在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用IP。相关头文件中的定义:AF = Address Famil转载 2017-05-17 19:34:34 · 4258 阅读 · 0 评论