当前位置: 首页>>代码示例>>C++>>正文


C++ Endpoint::connect方法代码示例

本文整理汇总了C++中Endpoint::connect方法的典型用法代码示例。如果您正苦于以下问题:C++ Endpoint::connect方法的具体用法?C++ Endpoint::connect怎么用?C++ Endpoint::connect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Endpoint的用法示例。


在下文中一共展示了Endpoint::connect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: runClient

void runClient(vector<string> uris)
{
    size_t sent = 0, recv = 0, dropped = 0;

    Endpoint client;

    client.onNewConnection = [] (int fd) {
        fprintf(stderr, "\ncli: new %d\n", fd);;
    };
    client.onLostConnection = [] (int fd) {
        fprintf(stderr, "\ncli: lost %d\n", fd);;
    };

    client.onPayload = [&] (int, Payload&&) {
        recv++;
    };
    client.onDroppedPayload = [&] (int, Payload&&) {
        dropped++;
    };

    for (auto& uri : uris) client.connect(uri);

    thread pollTh([&] { while (true) client.poll(100); });

    Payload payload = pack(string(PayloadSize, 'a'));
    auto sendFn = [&] {
        while (true) {
            client.broadcast(payload);
            sent++;
        }
    };
    thread sendTh(sendFn);


    double start = wall();
    size_t oldSent = 0, oldRecv = 0;

    while (true) {
        lockless::sleep(200);

        string diffSent = getStats(sent - dropped, oldSent);
        string diffRecv = getStats(recv, oldRecv);
        string elapsed = fmtElapsed(wall() - start);

        fprintf(stderr,
                "\r%s> sent: %s, recv: %s",
                elapsed.c_str(), diffSent.c_str(), diffRecv.c_str());
    }
}
开发者ID:RAttab,项目名称:slick,代码行数:49,代码来源:packet_test.cpp


注:本文中的Endpoint::connect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。