• 第11章——网络编程


    客户端-服务器编程模型

    • 一个应用是由一个服务器进程和一个或多个客户端进程组成。服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务
    • 客户端-服务器模型的基本操作是事务(一系列步骤)
    • 客户端和服务器是进程,而不是常提到的机器或者主机

    网络

    • 对主机而言,网络是一种I/O设备,是数据源和数据接收方
    • 一台主机可以发送一段位(称为帧)到这个网段内的其他任何主机

    全球IP因特网

    • 每台因特网主机都运行实现TCP/IP协议的软件
    • 因特网的客户端和服务器混合使用套接字接口函数和Unix I/O函数来进行通信
    • 域名集合和IP地址集合之间的映射是通过分布世界范围内的数据库DNS来维护的
    • 因特网客户端和服务器通过在连接上发送和接收字节流来通信,一个套接字是连接的一个端点,每个套接字都有相应的套接字地址,是由一个因特网地址和一个16位的整数端口组成的
    • 一个连接是由它两端的套接字地址唯一确定的,这对套接字地址叫做套接字对

    套接字接口

    • 客户端和服务器使用socket函数来创建一个套接字描述符
    • 客户端通过调用connect函数来建立和服务器的连接
    • bind函数告诉内核将addr中的服务器套接字地址和套接字描述符sockfd联系起来
    • listen函数将sockfd从一个主动套接字转化为一个监听套接字,该套接字可以接受来自客户端的连接请求
    • 服务器通过调用accept函数来等待来自客户端的连接请求
    • getaddrinfo函数将主机名、主机地址、服务名和端口号的字符串表示转化成套接字地址结构
    • getnameinfo函数将套接字地址结构转换成相应的主机和服务名字符串

    Web服务器

    • Web客户端和服务器之间的交互用的是一个基于文本的应用级协议,叫做HTTP
    • 对于Web客户端和服务器而言,内容是与一个MIME(多用途的网际邮件扩充协议)类型相关的字节序列
    • Web服务器以两种不同的方式向客户端提供内容:取一个磁盘文件,并将它的内容返回给客户端,静态内容;运行一个可执行文件,并将它的输出返回给客户端,动态内容
    • 每条由Web服务器返回的内容都是和它管理的某个文件相关联的,这些文件中的每一个都有一个唯一的名字,叫做URL
  • 相关阅读:
    前端9大轮子 以及最近前端面试总结
    1016 部分 A+B 【PAT (Basic Level) Practice (中文)】
    VoLTE基础自学系列 | 汇总
    人脸生成对抗+人脸识别流程+insightface
    字符串4:反转字符串中的单词
    开发板连接WiFi时获取不到ip,且不断的报如下问题
    C++虚函数的vptr与vtable
    学习Vue3 第十章(实操组件和认识less sass 和 scoped)
    【毕业设计】深度学习图像修复算法研究与实现 - python
    win11系统影响玩游戏吗?适合玩游戏吗?
  • 原文地址:https://blog.csdn.net/qq_44867112/article/details/127905120