zoukankan      html  css  js  c++  java
  • python SocketServer模块创建TCP服务器·

      SocketServer 模块是标准库中的一个高级模块,他的目的是为了简化很多样板代码,他是创建网络客户端和服务器所必需的代码,这个模块中有为你创建的各种各样的模块

    描述

    BaseServer

    包含核心服务器功能和mix-in类的钩子;仅用于推导,这样不会创建这个类的实例;可以使用TCPServer或UDPServer创建类的实例

    TCPServer/UDPServer

    基础的网络同步TCP/UDP服务器

    UnixStreamServer/UnixDatagramServer

    基于文件的基础同步TCP/UDP服务器

    ForkingMixin/ThreadindMixin

    核心派出或线程功能;只用作mix-in类于一个服务器类配合实现一些异步性;不能直接实例化这个类

    ForkingTCPServer/ForkingUDPServer

    ForkingMixin和TCPServer/UDPServer的组合

    ThreadingTCPServer/ThreadingUDPServer

    ThreadingMixin和TCPServer/UDPServer的组合

    BaseRequesthandler

    包含处理服务请求的核心功能;仅仅用于推导,无法创建这个类的实例;

    StreamRequestHandler/DatagramRequestHandler

    实现TCP/UDP服务器的服务处理器

      除了为你隐藏了实现细节之外,另一个不同之处是,我们现在使用类来编写应用程序。因为以面向对象的方式处理事务有助于组织数据,以及逻辑性地将功能放在正确的地方。你还会注意到,应用程序现在是事件驱动的,这意味着只有在系统中的事件发生时,它们才会工作。

    事件包括消息的发送和接收。事实上,你会看到类定义只包括一个用来接收客户端消息的事件处理程序。所有其他的功能都来自使用的SocketServer类。此外,GUI编程(见第5章)也是事件驱动的。你会立即注意到它们的相似性,因为最后一行代码通常是一个服务器的无限循环,它等待并响应客户端的服务请求。它工作起来几乎与本章前面的基础TCP服务器中的无限while循环一样。

      在原始服务器循环中,我们阻塞等待请求,当接收到请求时就对其提供服务,然后继续等待。在此处的服务器循环中,并非在服务器中创建代码,而是定义一个处理程序,这样当服务器接收到一个传入的请求时,服务器就可以调用你的函数。



  • 相关阅读:
    python
    基于vue的npm发包
    div实现水平垂直居中
    element-ui中表格添加fixed定位列后 出现表格错位现象
    解决github经常无法访问的问题
    快排算法C语言实现
    ubuntu下qt运行时/usr/bin/ld: cannot find -lGL
    llinux装完qt 启动qtcreator报错
    LINUX权限-bash: ./startup.sh: Permission denied
    In short, don’t use a pointer to a string literal if you plan to alter the string.
  • 原文地址:https://www.cnblogs.com/francischeng/p/9579562.html
Copyright © 2011-2022 走看看