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

LINUX下的tcp协议

TCP

1. 面向数据流(流式套接字)
2. 建立连接
3. 安全可靠的传输协议

应用场景:
      HTTP, MQTT,  FTP

     三次握手:TCP建立连接时,需要进行三次握手,确保收发数据前,双方都已准备就绪。

四次挥手:TCP断开连接时,需要进行四次挥手,从而确保通信双发都已收发数据结束。

C/S模型:

ssize_t recv(int sockfd, void *buf, size_t len, int flags);
功能:从tcp套接字接收数据
参数:
        sockfd:套接字
        buf:保存接收数据内容的首地址
        len:期待接收到的字节数
        flags:0:默认方式
返回值:
      成功:实际收到的字节数
      失败:-1
      0:当发送端套接字关闭时,recv不再阻塞,返回0


         int listen(int sockfd, int backlog);
       功能:用来监听TCP套接字
       参数:
             sockfd:监听套接字
             backlog:最多允许同时监听的客户端个数
       返回值:
             成功:0
             失败:-1

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
     功能:接收建立三次握手的客户端并产生与之通信的套接字
    参数:
          sockfd:监听套接字
          addr:保存客户端地址信息的变量指针
          addrlen:客户端地址大小的变量指针
     返回值:
             成功:通讯套接字
              失败:-1

TCP 和UDP 的区别:

UDP:用户数据报协议

1. 面向数据报
2. 无连接
3. 不安全不可靠(尽最大努力交付)
4. 机制简单,传输效率高

TCP: 传输控制协议

1. 面向数据流(流式套接字)
2. 建立连接
3. 安全可靠的传输协议

相关文章:

  • 用SpringBoot做一个web小案例环境搭建
  • 《Android Glide 深度解析:工作原理、LRU 缓存机制与最佳实践》
  • 设计模式Python版 模板方法模式(下)
  • 高效集成聚水潭采购退货数据到MySQL的最佳实践
  • 4-文件导入功能文档
  • 零成本本地化搭建开源AI神器LocalAI支持CPU推理运行部署方案
  • Redis 集合(Set)
  • HTTP 各版本协议简介
  • kotlin与MVVM的结合使用总结(三)
  • 深度学习之卷积神经网络(CNN)
  • 跨国企业网络案例分析:SD-WAN智能组网
  • 用DasViewer的时候3Dtiles 转osgb 可以直接指定目标坐标系吗?
  • 电路原理(电容 集成电路NE555)
  • python学习笔记
  • ROS实践(五)机器人自动导航(robot_navigation)
  • Science Advances 视触觉传感机制的交互装置,可以实时测量来自手不同部位的分布力
  • OSPF-2 邻接建立关系
  • CentOS7安装DNS服务器bind
  • 为什么 NFS 不适合作为 TDengine 的数据存储
  • 在使用element-ui时表单的表头在切换页面时第一次进入页面容易是白色字体解决方法
  • 湖北宜化拟斥资超32亿加价回购“弃子”,布局上游煤炭业务
  • “免签圈”扩容,旅游平台:今年以来巴西等国入境游订单显著增加
  • 娃哈哈:自4月起已终止与今麦郎的委托代工关系,未来将坚持自有生产模式
  • 哪种“网红减肥法”比较靠谱?医学专家和运动专家共同解答
  • 加强战略矿产出口全链条管控将重点开展哪些工作?商务部答问
  • 菲律宾中期选举初步结果出炉,杜特尔特家族多人赢得地方选举