zoukankan      html  css  js  c++  java
  • 网络模块(客户端的连接动作)

    一个客户端连接网络模块工作(一个连接的过程)
    监听线程收到一个连接后像轮询线程的连接队列中push一个conn_queue_item,然后向soketpair中写入一个字节
    此时子线程就是自动调用设置的事件,然后从连接队列中pop一个socket
    然后创建一个机遇socket的bufferevent
    在createChannel中回调
    void TCPServer::on_connect(int channel_id)
    {
        packet pkt;
        pkt.size = (int)link_stat::link_connected;
        pkt.channel_id = channel_id;
        pkt.is_data = false;
        from_net_push_pkt(pkt);//向无锁队列中插入一个包
    }
    在net初始化的过程中创建了一个线程,专门从net无锁队列中取包,然后放入共享内存中
    具体:在net线程中从TcpServer的无锁队列中取出包,然后放入共享内存中
    libevent连接的回调把包放入无锁队列,然后net线程从无锁队列中取包放入共享内存中,这里面没有涉及到net模块的内存池
  • 相关阅读:
    vue 多层级嵌套组件传值 provide 和 inject
    vue 消息订阅与发布 实现任意组件间的通信
    成功
    疯掉的拼接
    解析发送
    一条条发
    com发送
    字符串拼接
    COM
    笨方法的combox级联
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/4072159.html
Copyright © 2011-2022 走看看