zoukankan      html  css  js  c++  java
  • 网络编程 Cookbook

    客户端编写

    Requests库

    方法

    request.方法名(post,get,head) args:url  kargs:header字典,单条请求头部

    .urlopen自动选择请求类型

    返回response对象

    对象

    request,实例req

    参数与调用方法参数一致

    方法request.urlopen(req)

    response

    可指定表示方式json(字典),text,content

    服务器编写

    socketserver库

    继承自BaseRequestHandler(单线程)

    实现handle方法

    属性:

    request:客户端套接字

    client_adress客户端地址

    重用端口

    UDP服务器编写

    socketserver

    属性

    request:元组:数据报+客户端socket

    基于REST风格的简单接口

    对程序实现远程控制或交互

    一般的,编写响应HTTP请求的程序

    长时间运行程序:REST风格API实现监控,诊断

    大数据应用:构建查询、提取数据的系统

    控制硬件设备

    实现WSGI标准

    import cgi

    def wsgi_app(environ,start_response)

    也可以是类实例(实现__call__方法)可调用类实例

    environ字典

    key:REQUEST_METHON,  PATH_INFO,

    调用start_response,发起响应

    start_response函数参数

    字符串:结果状态

    元组序列:HTTP头

    返回字节串序列

    或生成器(生成字节串)

    本节的调度器只负责管理字典path_map

    key      value

    method:path  function

    请求——提取 方法:路径

    方法:路径  分发   处理函数

    使用调度器

    1.创建实例

    2.注册处理函数到调度器

    **查询变量:值 放入environ字典

    WSGI

    与服务器,框架 无关

    XML-RPC

    简单的远程过程调用服务

    创建服务器实例

    注册处理函数:register_function()方法

    serve_forever方法加载

    只能处理特定类型的数据:字符串,数字,列表,字典

    会将所有数据序列化为XML格式

    在不同的解释器间通信

    运行多个解释器实例(可能在多个机器上)

    通过消息,在不同解释器间 交换数据

    multiprocessing.connection

    消息完整无损,

    对象通过pickle序列化

    需要对连接实现更多的底层控制:超时,非阻塞IO

    使用其他库,或socket实现

    实现远程过程调用

    在socket、multiprocessing.connection这样的消息传递层之上,实现简单的远程过程调用RPC

    RPChandler

    RPCProxy

  • 相关阅读:
    混淆
    【虚拟DOM】√
    fn
    notebook
    sourceMappingURL
    十进制转换为十六进制
    关于this和super的区别
    类中访问级别
    Java中字符串解析
    IWorkspace操作
  • 原文地址:https://www.cnblogs.com/qmcj/p/9197436.html
Copyright © 2011-2022 走看看