zoukankan      html  css  js  c++  java
  • 【python】使用asyncore进行异步通信

    参考博文:http://blog.csdn.net/livefun/article/details/8721772

    参考博文:https://www.cnblogs.com/tomato0906/articles/4807774.html

    Asyncore是对服务器端socket的一个封装,主要解决多用户通信的问题。

    用户需要继承asyncore.dispatcher, 并且对其一些方法进行重写。

    一般来说需要重写的方法:

    handle_read: 当socket有可读数据的时候执行这个方法,是否有可读数据看readable()方法的返回结果

    handle_write: 当socket有可写数据的时候执行这个方法,是否有可写数据看writable()方法的返回结果

    handle_expt: 当socket出现OOB异常的时候执行这个方法

    handle_connect: 当有客户端连接的时候,执行该方法

    handle_close: 当连接关闭的时候执行这个方法

    handle_accept: 当作为server_socket监听的时候,有客户端连接的时候,用这个方法处理

    可使用的方法:

    create_socket(family, type): 创建一个套接字并且与对象绑定

    connect(address): 连接一个socket server

    send(data): 发送数据

    recv(buffer_size): 接受数据到内存缓存

    listen(backlog): socket_server 开始监听

    bind(address): socket_server 绑定端口

    accept(): socket_server接受客户端连接

    close(): 关闭socket

    一个典型的服务器例子:

    init里面:

      create_socket(INET, STREAM)

      set_reuse_addr()

      bind('', 12345)

      listen(5)

    handle_accept:

      accept()

      print

    init server

    asyncore.loop()

  • 相关阅读:
    谜题48:我所得到的都是静态的
    谜题47:啊呀!我的猫变成狗了
    谜题46:令人混淆的构造器案例
    谜题45:令人疲惫不堪的测验
    谜题44:切掉类
    Python--csv文件处理
    Python装饰器
    Python单例模式
    <<Senium2自动化测试>>读书笔记二
    python之内置函数
  • 原文地址:https://www.cnblogs.com/yesuuu/p/8001436.html
Copyright © 2011-2022 走看看