chapter12_网络编程

本文详细介绍了网络编程中的客户端-服务器模型,包括事务处理的3个步骤,以及TCP/IP协议在其中的角色。重点阐述了套接字接口、连接过程,如connect、bind、listen和accept函数的用途。此外,还讨论了EOF概念、Web服务器的工作方式,特别是CGI在处理动态内容中的作用。最后,给出了简易Web服务器示例,展示了GET方法、静态和动态内容的处理。
摘要由CSDN通过智能技术生成
  1. 客户端——服务器模型的基本操作是事务,事务包括3步

    1. 客户端向服务器发请求

    2. 服务器解析请求,并进行操作

    3. 服务器给客户端一个响应

    具体来看,

    1. 客户端进行系统调用,将客户端的虚拟地址空间拷贝数据到内核缓冲区

    2. 客户端主机上的协议软件给数据添加header

    3. 各个包在计算机网络上移动,到达服务器主机

    4. 服务器主机上的协议软件header逐层剥落

    5. 服务器某个进程进行系统调用将得到的数据拷贝到服务器的虚拟地址空间

  2. 全球IP因特网

    1. TCP/IP 协议交给内核代码完成

    2. 域名是一个层次结构

    3. 连接

      (1) 发生在一对进程间

      (2) 点对点

      (3) 一个连接由两端的套接字唯一指定

      (4) 套接字结构:IP + 端口号

      其中,客户端使用的是临时端口,服务器使用的是周知端口

  3. 套接字接口

    1. 概述

          客户端                      服务器
      
          socket                     socket
            |                           |
            |                           v
            |                         bind
            |                           |
            |                           v
            |                         listen
            |                           |
            v                           v
         connect ----连接请求--------> accept <---------
            |                           |              |
            |                           |              |
            v                           v              |
       rio_written ---------------> rio_readlineb      |
            |                           |              |
            |                           |              |
            v                           v              |
       rio_readlineb <-------------- rio_written       |
            |                           |              |
            |                           |              |
            v                           v              |
           close -------EOF--------> rio_readlineb     |
                                        |              |
                                        |              |
                                        v              |
                                      close ------------
      
    2. 从Unix内核的角度看,Socket是通信的端点

      从Unix程序的角度看,Socket是一个打开的文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值