2019独角兽企业重金招聘Python工程师标准>>>

函数预览:

1)ngx_nonblocking

2)ngx_blocking

3)ngx_tcp_nopush

4)ngx_tcp_push

解析:

1)ngx_nonblocking

从字面意义来理解,就是非阻塞。

int ngx_nonblocking(ngx_socket_t s)
{
    u_long  nb;

nb = 1;

return ioctl(s, FIONBIO, &nb);
}

实际上是执行ioctl(s,FIONBIO,&(value:1));

FIONBIO  设置/ 清除非阻塞I/O 标志

这里通过1就是设置非阻塞标志位。

2)ngx_blocking

int ngx_blocking(ngx_socket_t s)
{
    u_long  nb;

nb = 0;

return ioctl(s, FIONBIO, &nb);
}

这个就不需要解释了。

3)ngx_tcp_nopush

int ngx_tcp_nopush(ngx_socket_t s)
{int  cork;cork = 1;return setsockopt(s, IPPROTO_TCP, TCP_CORK,(const void *) &cork, sizeof(int));
}

解释下TCP_CORK的意思:

如果将TCP连接比喻为一个管道,那TCP_CORK选项的作用就像一个塞子。
设置TCP_CORK选项,就是用塞子塞住管道,而取消TCP_CORK选项,就是将塞子拔掉。
当TCP_CORK选项被设置时,TCP链接不会发送任何的小包,即只有当数据量达到MSS时,才会被发送。
一般当数据传输完成时,通常需要取消该选项,以防被塞住,这样才可以让不够MSS大小的包能及时发出去。

4) ngx_tcp_nopush

不需要解释了。

转载于:https://my.oschina.net/qiangzigege/blog/194026

nginx-0.1.0文件分析2: ngx_socket.c相关推荐

  1. PE文件和COFF文件格式分析--MS-DOS 2.0兼容Exe文件段

    MS 2.0节是PE文件格式中第一个"节".其大致结构如下:(转载请指明来源于breaksoftware的csdn博客) 在VC\PlatformSDK\Include\WinNT ...

  2. android文件上传413 nginx [error] 9679#0: *318855 client intended to send too large body: 1593409 bytes

    问题描述: android 图片文件上传服务器返回 413 ios 上传正常 排查: # whereis nginx # vi /etc/nginx/nginx.conf 查看日志存放地址 # cat ...

  3. 熊海CMS_V1.0代码审计与漏洞分析及采坑日记(一)--文件包含漏洞

    前言 最近几天在给协会的学弟讲代码审计入门相关内容,便找了这个熊海CMS_V1.0来教学,结果在这个过程中遇到蛮多问题的,于是这篇文章详细记录了对熊海CMS_V1.0从搭建到审计与漏洞分析的过程,其中 ...

  4. 火绒安全v5.0.45 附单文件版

    文章目录[隐藏] 软件介绍 软件截图 软件介绍 火绒是一款轻巧.高效.超强防御的安全防护软件.功能强悍,体量轻巧,既干净又安静.它能全面防御病毒.木马.流氓软件.流氓网站等对电脑系统和用户信息的威胁行 ...

  5. linux安装nginx1.14.0,Ubuntu 14.04 安装最新稳定版Nginx 1.6.0

    Ubuntu14.04默认安装的是Nginx 1.4.6 如果已经安装,请先卸载 sudo apt-get remove nginx 最新的稳定版Nginx 1.6.0在ubuntuupdates p ...

  6. NVIDIA DeepStream 5.0构建智能视频分析应用程序

    NVIDIA DeepStream 5.0构建智能视频分析应用程序 无论是要平衡产品分配和优化流量的仓库,工厂流水线检查还是医院管理,要确保员工和护理人员在照顾病人的同时使用个人保护设备(PPE),就 ...

  7. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件

    天萃荷净 oracle数据库无法启动报错ORA-00218故障,通过重建控制文件解决文件损坏问题 遇到一个案例在数据库启动的时候报ORA-00218错误,而这个故障的引起原因是因为重建控制文件的时候, ...

  8. Android 6.0.1 Location Service 分析

    定位服务是手机上最常用的功能之一,据说也是相对比较简单的服务,所以从这里入手.其他系统服务的架构都是类似的.明白其中一个之后,再去理解其他的会容易得多.下面以 Android 源码为基础,大致分析了 ...

  9. 【Vue】Docker + Nginx 部署 Vue3.0 项目

    Docker + Nginx 部署 Vue3.0 项目 1.用指令 npm run build 打包vue.js项目(该项目是在WebStorm里面新建的Vue空项目). 打包成功后,会生成一个目录d ...

  10. nginx 1.14.0 配置部署 thinkphp 5.1

    开始接触NGINX,配置tp5配了半天,找不到具体原因,于是用网上搜索到的配置复制粘贴搞定. 感谢 https://blog.csdn.net/qq_36431213/article/details/ ...

最新文章

  1. 我的2008年(上)-《走出软件作坊》是怎样炼成的
  2. Thinkpad T420 指纹开机 win10 解决方案
  3. List-----Array
  4. python的replace第i个位置_《原神》第80个绯红玉髓位置一览 第80个绯红玉髓如何获取...
  5. pytorch 笔记:torch.distributions 概率分布相关(更新中)
  6. 【赠书】深入浅出Python量化交易实战
  7. Javascript - Jquery - 事件
  8. centos重新安装yum
  9. LeetCode 653. 两数之和 IV - 输入 BST(二叉搜索树迭代器双指针)
  10. 查询各个科目成绩前三的记录
  11. Hadoop之mapReduce有几种排序及排序发生的阶段
  12. Hadoop-MapReduce
  13. android架构图示
  14. Unity3d import package 无标准资源包
  15. MATLAB:图像半调转换(halftone)和抖动转换(dither)
  16. AHRS简要说明及使用例程(外加踩坑)
  17. 好佳居窗帘十大品牌 窗帘需要装窗幔吗
  18. 李刚疯狂JAVA面向对象章节
  19. RPG游戏经典的系统架构
  20. Flutter中那些你需要知道的文本知识!

热门文章

  1. 借助Haproxy_exporter实现对MarathonLb的流量和负载实例业务的可用状态监控-续
  2. Axure实操笔记之axure炫酷的作者信息设置
  3. 计算机网络超详细笔记(一):计网概述
  4. PathProber:基于暴力破解方法探测和发现HTTP路径名
  5. classpath java配置_Java环境变量中classpath是必须配置吗?
  6. Android TeaPickerView数据级联选择器
  7. 1537 学生干部虚基类
  8. 外网接口(浏览器接口)调取设备数据,放到数据库里
  9. javascript 原型链实现继承简单例子
  10. Unsatisfied forward or external declaration 错误分析