IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 网络编程close与shutdown的区别 -> 正文阅读

[系统运维]网络编程close与shutdown的区别

?一、close与shutdown 的区别:
1、close终止了数据传送的两个方向;?这个函数会对套接字引用计数减一,一旦发现套接字引用计数到 0,就会对套接字进行彻底释放,并且会关闭 TCP 两个方向的数据流。
2、shutdown 可以有选择的终止某个方向的数据传送或者数据传送的两个方向、

二、shutdown 如果howto=1(SHUT_WR),就可以保证对等方接收到一个EOF字符,而不管其他进程是否已经打开了套接字(不管引用计数是否为1都激发TCP的正常终止连接)。shutdown直接使得该套接字不可用,如果有别的进程企图使用该套接字,将会受到影响。而close不能保证(详见下面三中的例子,conn引用计数减为0才关闭),直到套接字引用计数减为0时才发送。也就是说直到所有的进程都关闭了套接字。

三、
  int shutdown(int sockfd,int howto)
    howto=SHUT_RD (0)关闭连接的读的一半,不再接收数据
    howto=SHUT_WR (1)关闭连接的写的一半,
    howto=SHUT_RDWR(2)

例子:

int conn;
pid_t pid=fork();
if(pid==-1)
ERR_EXIT("fork");
if(pid==0)     //子进程
{
    //通信
  //....       
  
    //子进程使用完conn,close(conn) 引用计数减为0,这时才会向双方发送FIN段。
    close(conn);
} else if(pid>0)   //父进程
{
    //父进程不会向客户端发送FIN.要考虑到引用计数。
    //close(conn) 父进程用不到conn,将conn引用计数减一 。 
    //shutdown(conn,SHUT_WR) 的话不理会引用计数,直接向对方发送FIN段
  close(conn);
}

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:17:28  更:2022-10-08 21:20:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/19 9:54:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码