中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

高性能分布式網(wǎng)絡(luò)服務(wù)器--TCPServer模塊-創(chuàng)新互聯(lián)

TCPServer模塊

TCPServer模塊是采用Template Pattern設(shè)計(jì)模式封裝了一個(gè)常規(guī)TCP服務(wù)器。支持同時(shí)綁定多個(gè)地址進(jìn)行監(jiān)聽,只需要在綁定時(shí)傳入地址數(shù)組即可。還可以分別指定接收客戶端和處理客戶端的協(xié)程調(diào)度器

在科爾沁等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作專業(yè)公司,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),科爾沁網(wǎng)站建設(shè)費(fèi)用合理。github

https://github.com/huxiaohei/tiger.git

實(shí)現(xiàn)

初始化TCPServer時(shí)需要制定兩個(gè)IO調(diào)度器,分別用于接受客戶端和處理客戶端請(qǐng)求。在接受到客戶端連接請(qǐng)求時(shí),生成對(duì)應(yīng)的客戶端Socket實(shí)例(前面在接受Socket模塊的時(shí)候已經(jīng)介紹過(guò),Socket所對(duì)應(yīng)的sock會(huì)在IO調(diào)度器中注冊(cè)讀寫事件),并將Socket實(shí)例交由handle_client處理

因此,使用TCPServer時(shí),必須從TCPServer派生一個(gè)新類,并重新實(shí)現(xiàn)子類的handle_client

使用可以參考EchoServer

class EchoServer : public tiger::TCPServer {public:
    void handle_client(tiger::Socket::ptr client) override {TIGER_LOG_D(tiger::TEST_LOG)<< "[handle client:"<< client<< "]";
        auto buf = std::make_shared();
        while (true) {buf->clear();
            std::vectoriovs;
            buf->get_enable_write_buffers(iovs, 1024);
            int rt = client->recv(&iovs[0], iovs.size());
            if (rt == 0) {TIGER_LOG_I(tiger::TEST_LOG)<< "[has closed client:"<< client<< "]";
                break;
            } else if (rt< 0) {TIGER_LOG_E(tiger::TEST_LOG)<< "[client error"
                                  << " erron:"<< strerror(errno)<< "]";
                break;
            }
            buf->set_position(buf->get_position() + rt);
            buf->set_position(0);
            const std::string &msg = buf->to_string();
            TIGER_LOG_D(tiger::TEST_LOG)<< "[Echo receive: "<< msg<< "]";
            client->send(msg.c_str(), msg.size());
            if (msg.find("stop") == 0) {TIGER_LOG_I(tiger::TEST_LOG)<< "[ECHO STOP]";
                stop();
                tiger::IOManager::GetThreadIOM()->stop();
            }
        }
    }
};


void run() {auto addr = tiger::Address::LookupAny("0.0.0.0:8080");
    auto ech_server = std::make_shared();
    ech_server->bind(addr);
    ech_server->start();
}

int main() {tiger::SingletonLoggerMgr::Instance()->add_loggers("tiger", "../conf/tiger.yml");
    tiger::Thread::SetName("TCPServer");
    TIGER_LOG_D(tiger::TEST_LOG)<< "[tcp_server test start]";
    auto iom = std::make_shared("TCPServer", true, 1);
    iom->schedule(run);
    iom->start();
    TIGER_LOG_D(tiger::TEST_LOG)<< "[tcp_server test end]";
    return 0;
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享題目:高性能分布式網(wǎng)絡(luò)服務(wù)器--TCPServer模塊-創(chuàng)新互聯(lián)
本文鏈接:http://www.rwnh.cn/article14/jcdde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站、定制開發(fā)網(wǎng)站收錄、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
赫章县| 洛扎县| 绵竹市| 镶黄旗| 瑞安市| 连云港市| 台南市| 腾冲县| 梁河县| 瑞金市| 神木县| 合作市| 留坝县| 内江市| 曲麻莱县| 清苑县| 鄱阳县| 江门市| 松潘县| 图们市| 皮山县| 绥阳县| 昌黎县| 江油市| 吉木乃县| 晋江市| 逊克县| 大邑县| 息烽县| 天气| 克拉玛依市| 巴彦淖尔市| 博野县| 石家庄市| 乌兰察布市| 德化县| 海口市| 讷河市| 登封市| 新闻| 炉霍县|