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


C++ Address::getAddr方法代码示例

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


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

示例1: send

    int UdpSocket::send(Address addr, unsigned short port, const char* bytes, int len) {
        if (addr.getType() != addr_type)
            return 0;
        
        char addr_buf[sizeof(sockaddr_in6)];
        memset(addr_buf, 0, sizeof(sockaddr_in6));
        
        if (addr_type == Address::IPV4) {
#if !defined(__ANDROID__)
            ((sockaddr_in*)addr_buf)->sin_len = sizeof(sockaddr_in);
#endif
            ((sockaddr_in*)addr_buf)->sin_family = AF_INET;
            memcpy(&((sockaddr_in*)addr_buf)->sin_addr, addr.getAddr(), sizeof(in_addr));
            ((sockaddr_in*)addr_buf)->sin_port = htons(port);
        } else {
#if !defined(__ANDROID__)
            ((sockaddr_in6*)addr_buf)->sin6_len = sizeof(sockaddr_in6);
#endif
            ((sockaddr_in6*)addr_buf)->sin6_family = AF_INET6;
            memcpy(&((sockaddr_in6*)addr_buf)->sin6_addr, addr.getAddr(), sizeof(in6_addr));
            ((sockaddr_in*)addr_buf)->sin_port = htons(port);
        }
        
        return (int)sendto(fd, bytes, len, 0, (sockaddr*)addr_buf, addr_type == Address::IPV4 ? sizeof(sockaddr_in) : sizeof(sockaddr_in6));
    }
开发者ID:ngrawlings,项目名称:libNRCore,代码行数:25,代码来源:UdpSocket.cpp

示例2: joinMulticastGroup

    bool UdpSocket::joinMulticastGroup(Address local, Address group) {
        if (addr_type == Address::IPV4) {
                
            struct ip_mreq g;
            memcpy(&g.imr_multiaddr.s_addr, group.getAddr(), sizeof(in_addr));
            memcpy(&g.imr_interface.s_addr, local.getAddr(), sizeof(in_addr));
            if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&g, sizeof(ip_mreq)) == 0)
                return true;
                
        } else {
            
            // TODO: Multicast listening with IPV6, in a cross platform manner

        }
        
        return false;
    }
开发者ID:ngrawlings,项目名称:libNRCore,代码行数:17,代码来源:UdpSocket.cpp


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