46.muduo学习笔记之example_discard例子

1. 说明

  1. discard是连接到来时不做任何处理,代码比较短,贴在下面,后面的例子代码较长,还是自己找源码吧

  2. 实际就是一个DiscardServer类,有EventLoop* 和 TcpServer对象,重写连接到来函数和消息到来函数

2. 代码

/* 
收到消息不做任何处理
 */

#include<muduo/base/Logging.h>
#include<muduo/net/EventLoop.h>
#include<muduo/net/TcpServer.h>
#include<muduo/net/InetAddress.h>

using namespace std;
using namespace muduo;
using namespace muduo::net;

class DiscardServer{

public:
    DiscardServer(EventLoop* loop,const InetAddress& listen_addr)
                :loop_(loop),server_(loop,listen_addr,"DiscardServer")        
    {
        server_.setConnectionCallback(bind(&DiscardServer::on_connection,this,_1));
        server_.setMessageCallback(bind(&DiscardServer::on_message,this,_1,_2,_3));
    }

    void start(){
        server_.start();
    }

private:
    EventLoop* loop_;
    TcpServer server_;

    void on_connection(const TcpConnectionPtr& conn){
        LOG_INFO<<"一个新连接:"<<conn->peerAddress().toIpPort()<<" to "
                <<conn->localAddress().toIpPort();
    }

    void on_message(const TcpConnectionPtr& conn,Buffer* buf,Timestamp time){
        string msg(buf->retrieveAllAsString());
        LOG_INFO<<"收到消息:"<<msg;
    }

};

int main(){

    LOG_INFO << "pid = " << getpid() << ", tid = " << CurrentThread::tid();

    EventLoop loop;
    InetAddress listen_addr(11113);
    DiscardServer server(&loop,listen_addr);
    server.start();
    loop.loop();
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值