设为首页 加入收藏

TOP

muduo库如何支持多线程(十一)
2013-11-20 14:23:42 来源: 作者: 【 】 浏览:955
Tags:muduo 如何 支持 线程


    测试程序
    [cpp]
    #include <muduo/net/TcpServer.h>
    #include <muduo/net/EventLoop.h>
    #include <muduo/net/InetAddress.h>
    #include <boost/bind.hpp>
    #include <stdio.h>
    using namespace muduo;
    using namespace muduo::net;
    class TestServer
    {
    public:
    TestServer(EventLoop* loop,
    const InetAddress& listenAddr, int numThreads)
    : loop_(loop),
    server_(loop, listenAddr, "TestServer"),
    numThreads_(numThreads)
    {
    server_.setConnectionCallback(
    boost::bind(&TestServer::onConnection, this, _1));
    server_.setMessageCallback(
    boost::bind(&TestServer::onMessage, this, _1, _2, _3));
    server_.setThreadNum(numThreads);
    }
    void start()
    {
    server_.start();
    }
    private:
    void onConnection(const TcpConnectionPtr& conn)
    {
    if (conn->connected())
    {
    printf("onConnection(): new connection [%s] from %s\n",
    conn->name()。c_str(),
    conn->peerAddress()。toIpPort()。c_str());
    }
    else
    {
    printf("onConnection(): connection [%s] is down\n",
    conn->name()。c_str());
    }
    }
    void onMessage(const TcpConnectionPtr& conn,
    const char* data,
    ssize_t len)
    {
    printf("onMessage(): received %zd bytes from connection [%s]\n",
    len, conn->name()。c_str());
    }
    EventLoop* loop_;
    TcpServer server_;
    int numThreads_;
    };
    int main()
    {
    printf("main(): pid = %d\n", getpid());
    InetAddress listenAddr(8888);
    EventLoop loop;
    TestServer server(&loop, listenAddr,4);
    server.start();
    loop.loop();
    }

        

首页 上一页 8 9 10 11 12 13 下一页 尾页 11/13/13
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇二叉树的创建与递归遍历 下一篇快速幂和欧拉函数的优化求解

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)
·金融界大佬力荐,Pyt (2025-12-25 04:49:42)
·你必须要弄懂的多线 (2025-12-25 04:22:35)
·如何在 Java 中实现 (2025-12-25 04:22:32)