当前位置: 首页 > news >正文

SOCKET与底层TCP协议的关系

客户端调用connect
    底层发送SYN包到服务端
    如果此时服务端尚未listen,
        则返回RST+ACK,connect返回失败;
    如果此时服务端已经调用listen,
        如果listen队列未满,
            返回SYN+ACK,客户端应答ACK,握手完成,connect返回成功;
        如果listen队列已满,
            返回RST+ACK,connect返回失败;

服务端调用accept与否不影响握手


连接建立之后
调用shutdown(SD_SEND),底层发送FIN包到对方,对方应答ACK
调用shutdown(SD_RECEIVE),
    如果此时没有数据等待recv,
        则不做任何处理,可正常发送数据;
    如果此时有数据在等待recv或者后续收到数据,
        则发送RST+ACK,之后连接终端,双方都不能再发送/接收数据;

调用shutdown后,套接字相关资源未释放,直到closesocket
 


http://www.mrgr.cn/news/54140.html

相关文章:

  • 【详解】下载MySql安装教程(帮助数据库下载)
  • Android 内存优化——常见内存泄露及优化方案
  • 24.安卓逆向-frida基础-objection工具3-实战
  • 【从零开始的LeetCode-算法】884. 两句话中的不常见单词
  • 引领智慧文旅新纪元,开启未来旅游新境界
  • 【Linux】僵尸进程和孤儿进程
  • 数据库产品中传输中的数据加密(Encryption in Transit)方法简介
  • 2061:【例1.2】梯形面积
  • STM32—FLASH闪存
  • 代码随想录算法训练营第十九天|Day19二叉树
  • long_long_type : 不是 boost 的成员
  • 【Python爬虫实战】从文件到数据库:全面掌握Python爬虫数据存储技巧
  • 重学SpringBoot3-Spring WebFlux简介
  • JUC并发编程进阶2:CompletableFuture
  • 光盘刻录大文件时分卷操作
  • 2-127基于matlab的非圆齿轮啮合动画设计
  • 怎么开发一款app软件
  • synchronized 锁字符串:常见坑点与解决策略
  • python-代码技巧
  • Redis可视化软件安装
  • Leecode刷题之路第25天之K个一组翻转链表
  • CSS 设置网页的背景图片
  • StarTowerChain:开启去中心化创新篇章
  • taro底部导航,Tabbar
  • 电能表预付费系统-标准传输规范(STS)(13)
  • 【str_replace替换导致的绕过】