设为首页 加入收藏

TOP

muduo库如何支持多线程(十三)
2013-11-20 14:23:42 来源: 作者: 【 】 浏览:947
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();
    }

        

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

评论

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

·常用meta整理 | 菜鸟 (2025-12-25 01:21:52)
·SQL HAVING 子句:深 (2025-12-25 01:21:47)
·SQL CREATE INDEX 语 (2025-12-25 01:21:45)
·Shell 传递参数 (2025-12-25 00:50:45)
·Linux echo 命令 - (2025-12-25 00:50:43)