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


C++ ServerSocket::setAddress方法代码示例

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


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

示例1: guard

/*
 * 起一个监听端口。
 *
 * @param spec: 格式 [upd|tcp]:ip:port
 * @param streamer: 数据包的双向流,用packet创建,解包,组包。
 * @param serverAdapter: 用在服务器端,当Connection初始化及Channel创建时回调时用
 * @return IO组件一个对象的指针
 */
IOComponent *Transport::listen (const char *spec, IPacketStreamer *streamer, 
                                IServerAdapter *serverAdapter, int timeout) {
    MutexGuard guard(&_stopMutex);
    if (_stop) { 
        ANET_LOG(SPAM, "Transport(%p) Stoped!", this);
        return NULL; 
    }
    if (NULL == spec || NULL == streamer || NULL == serverAdapter) {
        ANET_LOG(WARN, "Invalid parameters for listen(%p,%p,%p)",
                 spec, streamer, serverAdapter);
        return NULL;
    }

    char tmp[512];
    char *args[32];
    strncpy(tmp, spec, 512);
    tmp[511] = '\0';

    if (parseAddr(tmp, args, 32) != 3) {
        return NULL;
    }

    if (strcasecmp(args[0], "tcp") == 0) {
        char *host = args[1];
        int port = atoi(args[2]);

        // Server Socket
        ServerSocket *socket = new ServerSocket();
        assert(socket);
        if (!socket->setAddress(host, port)) {
            delete socket;
            return NULL;
        }

        // TCPAcceptor
        TCPAcceptor *acceptor 
            = new TCPAcceptor(this, socket, streamer, serverAdapter, timeout);
        assert(acceptor);
        if (!acceptor->init()) {
            delete acceptor;
            return NULL;
        }
        // 返回
        return acceptor;
    } else if (strcasecmp(args[0], "udp") == 0) {}

    return NULL;
}
开发者ID:AllanXiang,项目名称:Source,代码行数:56,代码来源:transport.cpp

示例2: strncpy

/*
 * 起一个监听端口。
 *
 * @param spec: 格式 [upd|tcp]:ip:port
 * @param streamer: 数据包的双向流,用packet创建,解包,组包。
 * @param serverAdapter: 用在服务器端,当Connection初始化及Channel创建时回调时用
 * @return IO组件一个对象的指针
 */
IOComponent *Transport::listen(const char *spec, IPacketStreamer *streamer, 
								IServerAdapter *serverAdapter) {
    char tmp[1024];
    char *args[32];
    strncpy(tmp, spec, 1024);
    tmp[1023] = '\0';

    if (parseAddr(tmp, args, 32) != 3) {
        return NULL;
    }

    if (strcasecmp(args[0], "tcp") == 0) {
        char *host = args[1];
        int port = atoi(args[2]);

        // Server Socket
        ServerSocket *socket = new ServerSocket();

        if (!socket->setAddress(host, port)) {
            delete socket;
            return NULL;
        }

        // TCPAcceptor
        TCPAcceptor *acceptor = new TCPAcceptor(this, socket, streamer, serverAdapter);

        if (!acceptor->init()) {
            delete acceptor;
            return NULL;
        }

        // 加入到iocomponents中,及注册可读到socketevent中
        addComponent(acceptor, true, false);

        // 返回
        return acceptor;
    } else if (strcasecmp(args[0], "udp") == 0) {}

    return NULL;
}
开发者ID:yinchunxiang,项目名称:tair_trunk_r1797_annotation,代码行数:48,代码来源:transport.cpp


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