• 第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
  • 相关阅读:
    docker学习笔记
    java中的Properties配置文件操作[61]
    建造者模式和模板设计模式应该怎么使用
    Python绘制神经网络模型图
    在 Mac 上将 PDF 转换为 PowerPoint 的 5 种解决方案
    Android Apk一键打包上传至蒲公英平台的gradle脚本
    Softing TCS:高效的诊断模拟解决方案
    如何用一颗芯片实现5V转正负12V
    Jmeter进阶使用指南-使用参数化
    Codeforces Round #723 (Div. 2) C2. Potions (Hard Version)
  • 原文地址:https://blog.csdn.net/qq_44867112/article/details/127905120