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()

  • 相关阅读:
    RAM调优之日志分析
    HDU Always Cook Mushroom (极角排序+树状数组)
    并非全部的程序猿都适合做技术管理
    HTTP Header具体解释
    Linux 通配符
    寻找正在连接中的网络连接
    hdu 1052 田忌赛马
    linux上电自启动应用程序具体解释
    C++ 中的 const 类型变量
    FileUtil
  • 原文地址:https://www.cnblogs.com/yesuuu/p/8001436.html
Copyright © 2011-2022 走看看