linux下 IPv6 UDP组播

linux下 IPv6 UDP组播,第1张

linuxIPv6 UDP组播(C++)👉 文章目录
  • linux下 IPv6 UDP组播(C++)👉
    • @[toc]
      • Server
      • Cilect

🌈 linux下 IPv6组播(C++)
🍓windows下IPv4 UDP通信(C++、MFC)
📞windows下IPv6 UDP通信(C++、MFC)
🍎 windows下IPv6 UDP组播(C++、MFC)

Server
#include 
#include 
#include 
#include 
#include 
 
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("等待接收信息!\n"); //接收数据 char buffer[128]; read(fd, buffer, sizeof(buffer)); printf("%s\n", buffer); return 0; }

Cilect
#include 
#include 
#include 
#include 
#include 
#include 
 
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; }

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/568340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)

保存