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

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. 安全可靠的传输协议


http://www.kler.cn/a/585652.html

相关文章:

  • 大数据技术之Spark优化
  • Prosys OPC UA Gateway:实现 OPC Classic 与 OPC UA 无缝连接
  • 使用OpenCV和MediaPipe库——抽烟检测(姿态监控)
  • go的gmp
  • 使用 Arduino 和 ThingSpeak 通过互联网进行实时温度和湿度监测
  • 一次ORACLE 10G数据库REDO LOG损坏报错的解决办法ORA-00354: corrupt redo log block header
  • pjsip dtmf发送和接收(pjsua)
  • 在colab导入d2l总报错
  • 【机器人-基础知识】标定 - 相机内参求解原理(单应性矩阵、内参约束方程)
  • 蓝桥备赛(18)- 红黑树和 set 与 map(下)
  • 专家系统如何运用谓词逻辑进行更复杂的推理
  • 微软为何选择用Go而非Rust重写TypeScript
  • C++程序设计语言笔记——抽象机制:类层次
  • 力扣——146.LRU缓存
  • 2018年全国职业院校技能大赛-高职组计算机网络应用竞赛竞赛样题A卷
  • 2025年跨网文件交换系统推荐:安全的内外网文件传输系统Top10
  • PyQt基础——简单的图形化界面(窗口)
  • PowerShell New-Item命令(多功能命令,用于创建文件、目录、注册表项等多种类型的项目)
  • 彩色图像Opencv转Qimage【避坑】
  • ELK(Elasticsearch、Logstash、Kbana)安装及Spring应用