zoukankan      html  css  js  c++  java
  • linux下 IPv6组播(C++)

     

     

    Server

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    #include <arpa/inet.h>
     
    int main()
    {
        //创建套接字
        int fd = socket(AF_INET6, SOCK_DGRAM, 0);
    ​
        //绑定本地网络信息
        struct sockaddr_in6 address = {AF_INET6, htons(6060)};
        bind(fd, (struct sockaddr*)&address, sizeof address);
    ​
        //ipv6_mreq结构提供了用于IPv6地址的多播组的信息。
        struct ipv6_mreq group;
        //将接口索引指定为0,则使用默认的多播接口。
        group.ipv6mr_interface = 0;    
        //IPv6组播组的地址。
        inet_pton(AF_INET6, "ff02::1", &group.ipv6mr_multiaddr);  
        //将套接字加入到指定接口上提供的多播组。此选项仅对数据报和原始套接字有效(套接字类>型必须为SOCK_DGRAM或SOCK_RAW)。
        setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &group, sizeof(group));
    ​
        printf("等待接收信息!
    ");
        //接收数据
        char buffer[128];
        read(fd, buffer, sizeof(buffer));    
        printf("%s
    ", buffer);
        return 0;
    ​
    }

    Cilect

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    #include <arpa/inet.h>
    #include <net/if.h>
     
    int main()
    {
        // 创建套接字
        int fd = socket(AF_INET6, SOCK_DGRAM, 0);
    ​
        // ADDRESS
        struct sockaddr_in6 address = {AF_INET6, htons(6060)};
        //这个函数转换字符串到网络地址,第一个参数af是地址簇,第二个参数*src是来源地址,第三个参数* dst接收转换后的数据。
        inet_pton(AF_INET6, "ff02::1", &address.sin6_addr);
    ​
        //发送数据
        char buffer[128];
        strcpy(buffer, "");
        sendto(fd, "hello world!", sizeof buffer, 0, (struct sockaddr*)&address, sizeof address);
        return 0;
    }
  • 相关阅读:
    TCP源码—连接建立
    TCP系列02—连接管理—1、三次握手与四次挥手
    TCP系列01—概述及协议头格式
    ubuntu软件管理apt与dpkg
    318. Maximum Product of Word Lengths
    317. Shortest Distance from All Buildings
    316. Remove Duplicate Letters
    315. Count of Smaller Numbers After Self
    314. Binary Tree Vertical Order Traversal
    313. Super Ugly Number
  • 原文地址:https://www.cnblogs.com/IntelligencePointer/p/14186663.html
Copyright © 2011-2022 走看看