• socket编程


    网络协议指的是计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合。一般系统网络协议包括五个部分:通信环境,传输服务,词汇表,信息的编码格式,时序、规则和过程。

    在这里插入图片描述

    在这里插入图片描述

    Socket是应用层和TIP/IP协议簇通信的中间软件抽象层
    在这里插入图片描述

    socket编程

    Socket网络通信接口
    在这里插入图片描述

    Socket套接字由远景研究规划局(Advanced Research Projects Agency, ARPA)资助加里福尼亚大学伯克利分校的一个研究组研发。其目的是将TCP/IP协议相关软件移植到UNIX类系统中。设计者开发了一个接口,以便应用程序能简单地调用该接口通信。这个接口不断完善,最终形成了Socket套接字。Linux系统采用了Socket套接字,因此,Socket接口就被广泛使用,到现在已经成为事实上的标准。与套接字相关的函数被包含在头文件sys/socket.h中。

    在这里插入图片描述

    在客户端和服务器端使用的套接字不同

    在这里插入图片描述

    在客户端的套接字

    在客户端需要创建一个套接字,并且指定连接目标的IP地址和端口号

    在这里插入图片描述

    在服务器端的套接字

    在客户端需要创建一个套接字,并且绑定到一个指定的端口号
    在这里插入图片描述

    建立连接

    在这里插入图片描述

    套接字的协议

    使用不同的协议对数据传输的方式和效率有着不同的影响
    而最常使用的就是TCP和UDP两种

    TCP通信流程

    TCP是一个面向连接的,安全的,流式传输协议,这个协议是一个传输层协议。

    1. 面向连接:是一个双向连接,通过三次握手完成,断开连接需要通过四次挥手完成。
    2. 安全:tcp通信过程中,会对发送的每一数据包都会进行校验, 如果发现数据丢失, 会自动重传
    3. 流式传输:发送端和接收端处理数据的速度,数据的量都可以不一致

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    如何使用 VuePress 搭建博客网站并 Vercel 部署
    前端需要了解的浏览器缓存知识
    低代码助力企业数字化转型
    WordPress 6.1新功能 (特性和截图)
    package.json 详解
    ESP8266-Arduino编程实例-MQ-5液化天然气传感器驱动
    要点初见:切换老版本Rust并运行老版本cargo
    一款适用于勒索病毒应急演练加解密工具
    计算机丢失MSVCP140.dll的解决方法分享
    路由器配置单区域(多区域)OSPF
  • 原文地址:https://blog.csdn.net/weixin_40933653/article/details/132767217