码迷,mamicode.com
首页 > 其他好文 > 详细

网络模块(客户端的连接动作)

时间:2014-11-03 22:18:45      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   div   on   log   bs   工作   

一个客户端连接网络模块工作(一个连接的过程)
监听线程收到一个连接后像轮询线程的连接队列中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模块的内存池

 

网络模块(客户端的连接动作)

标签:style   blog   color   sp   div   on   log   bs   工作   

原文地址:http://www.cnblogs.com/zzyoucan/p/4072159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!