最近在看 haproxy 的源码,使用了太多 goto 跳转,实在让人头大。 当一个代码块执行完后会执行哪里的代码呢? 写几个例子来总结一下规律吧。 block_1 的代码执...
最近在看 haproxy 的源码,使用了太多 goto 跳转,实在让人头大。 当一个代码块执行完后会执行哪里的代码呢? 写几个例子来总结一下规律吧。 block_1 的代码执...
代码分析 调试过程中你会对代码结构渐渐的有清晰的认识,现在我们讲一下这中间的全局变量和函数现在我们依旧是分析 v1.0.0 版本 全局变量 proxy 变量该变量是一个结构指...
/sbin - Binaries needed for booting, low-level system repair, or maintenance (run level...
在地址框输入并回车以后,浏览器发送连接请求。 我们在浏览器中输入的大多是一个网站的域名,需要经过DNS解析成IP地址才能发送页面请求。解析顺序:1) 浏览器缓存,2) 本机缓...
epoll理解及应用 相较于select函数的epoll函数的特点: epoll只在Linux平台下提供支持,不具有兼容性。 无需每次传递监视对象信息。 无须编写以监视状态变...
分离I/O流 上一章中使用文件描述符的套接字没有办法半关闭,即没有办法关闭自己的发送端,而仍可接收对方的消息。因为读写两个模式的FILE指针都是基于同一个文件描述符创建的。 ...
标准I/O函数的优点 移植性好 + 利用缓冲提高性能。分别使用系统函数和标准I/O函数的例子对比(注意书中少了一个头文件): 后者几乎瞬间就完成了。 标准I/O函数的缺点 不...
多播 多播是基于UDP的。多播数据包的格式与UDP数据包相同。多播组是D类IP地址(224.0.0.0~239.255.255.255)。多播需要借助路由器完成。源主机只发送...
send & recv 函数 可选项含义sendrecv示例MSG_OOB传输一个字符的带外数据**oob_recv.c和oob_send.cMSG_PEEK验证输入缓冲中是...
理解select函数并实现服务器端 select函数调用过程: select函数调用完成后,fd_set变量会发生变化,除发生变化的文件描述符对应位不变,其余位均变为0。示例...
进程间通信的基本概念 为了完成进程间通信,需要创建管道。管道并非属于进程的资源,而是像套接字一样,属于操作系统。 用这个函数可以实现父子进程的单向、双向通信: 但使用一个管道...
初始创建虚拟机分配的硬盘空间太小了,后面想增大一些,发现在ESXi UI上设置好了空间以后并没有变。 原来是因为划定vg时已经固定了容量,lv容量从vg扩充,第一次已经将vg...
进程概念及应用 并发服务器端实现模型和方法: 多进程服务器(Chap10&11) 多路复用服务器(Chap12) 多线程服务器(Chap18) 进程:占用内存空间的正在运行的...
套接字可选项和I/O缓冲大小 可选项的读取和设置通过如下两个函数完成: getsockopt方法调用示例: 套接字类型SO_TYPE是一个只读可选项,意味着套接字一旦创建就不...
域名系统 在Linux系统中查询自己计算机中注册的默认DNS服务器地址,可以输入如下命令: 计算机内置的默认DNS服务器并不知道网络上所有域名的IP地址信息。若该DNS服务器...
基于TCP的半关闭 Linux的close函数不够优雅是因为在它之后不仅无法传输数据,也不能接收数据。但TCP协议原本的设计不是这样的。因此需要一个函数来仅断开一个方向的流。...
实现基于UDP的服务器端/客户端 TCP协议中,需要创建一个服务器端套接字,除此之外有几个客户端连接,就需要额外多少个接受连接的套接字。而UDP协议中只有一个套接字。一个UD...
已知字符串长度情况下完善回声客户端 服务端同上一章。 定义应用层协议 原书中有些bug,服务端接收到的操作数个数没有转换成int。经fix后代码见附录,运行结果如下: TCP...
实现基于TCP的服务器端 实现基于TCP的客户端 客户端的IP地址就是主机的IP地址,端口在调用connect()时自动由内核随机分配。发生以下两种情况之一就会返回: 服务器...
分配给套接字的IP地址与端口号 只需通过IP地址的第一个字节即可判断网络地址占用的字节数:A类地址的首字节范围:0~127B类地址的首字节范围:128~191C类地址的首字节...