zoukankan      html  css  js  c++  java
  • close函数

    int close(int sockfd);

    close一个TCP套接字的默认行为是把该套接字标记成已关闭,然后立即返回到调用进程,

    该套接字描述符不能再由调用进程使用,也就是说它不能再作为read或write的第一个参数

    并发服务器中父进程关闭已连接套接字只是导致相应描述符的引用数值减1,既然引用数值仍大于0,这个close调用并不引发TCP的四分组连接终止序列

    对于父进程与子进程共享已连接套接字的并发服务器来说,这正是所期望的

    如果我们确实想在某个TCP连接上发送一个FIN,那么可以改用shutdown函数以代替close

    如果父进程对每个由accept返回的已连接套接字都不调用close,那么并发服务器将会发生什么

    首先,父进程最终将耗尽可用描述符,因为任何进程在任何时刻可拥有的打开着的描述符通常是有限制的

    不过更重要的是,没有一个客户连接会被终止,

    当子进程关闭已连接套接字时,它的引用计数值将由2减为1且保持为1

    因为父进程永不关闭任何已连接套接字

    这将妨碍TCP连接终止序列的发生,导致连接一直打开着。

    ========================if i have some wrong, please give me a message, thx.========================
  • 相关阅读:
    集群和高可用
    haproxy-负载均衡介绍
    HAproxy负载均衡-ACL篇
    Haproxy配置文件(2)
    Haproxy原理(1)
    Haproxy状态监控配置教程
    在Windows中单机环境下创建RabbitMQ集群
    Haproxy------在windows下配置负载均衡
    负载均衡的软件
    HAProxy的三种不同类型配置方案
  • 原文地址:https://www.cnblogs.com/ailx10/p/5350488.html
Copyright © 2011-2022 走看看