美文网首页
iOS UDP组播

iOS UDP组播

作者: 当优秀成为习惯 | 来源:发表于2019-11-27 11:48 被阅读0次

组播步骤:

  • 建立socket
  • socket和端口绑定
  • 加入一个组播组
  • 通过sendto / recvfrom进行数据的收发
  • 关闭socket

代码实现

    // 创建udpsocket对象
   GCDAsyncUdpSocket *udpServer = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_global_queue(0, 0)];
    self.recvSocket= udpServer;    
    NSError *error = nil;
    // 绑定端口
    [udpServer bindToPort:50091 error:&error];
    NSLog(@"绑定端口 %@", error);
    // 开启广播
    [udpServer enableBroadcast:YES error:&error];
    NSLog(@"开启广播: %@", error);
  // 加入组播
    [udpServer joinMulticastGroup:@"239.100.100.1" error:&error];
    NSLog(@"加入组播组: %@", error);
// 开始接收组播数据,会回掉一下代理方法
    [udpServer beginReceiving:&error];
    NSLog(@"Error starting server (recv): %@", error);
接收数据的代理方法
- (void)udpSocket:(GCDAsyncUdpSocket *)sock didReceiveData:(NSData *)data
                                             fromAddress:(NSData *)address
withFilterContext:(nullable id)filterContext{
    NSMutableData *dt = [NSMutableData dataWithData:data];
    NSData *rDt = [dt subdataWithRange:NSMakeRange(2, data.length-6)];
    NSString *str = [[NSString alloc] initWithData:rDt encoding:NSUTF8StringEncoding];
    NSLog(@"data:%@",str);
    LogFunc;
}
控制器销毁要关闭退出组播,不然下次进来会报错,因为不能重复加入
- (void)dealloc{
    [self.recvSocket leaveMulticastGroup:@"239.100.100.1" error:nil];
    [self.recvSocket close];
}

相关文章

  • iOS UDP组播

    组播步骤: 建立socket socket和端口绑定 加入一个组播组 通过sendto / recvfrom进行数...

  • 网络通讯

    UDP UDP多播 多播(组播)的概念多播,也称为“组播”,将网络中同一业务类型主机进行了逻辑上的分组,进行数据收...

  • UDP组播

    使用哪种协议实现 udp 不用保证数据可靠性,传输速度快;并且一般tcp是不用于多播场景的;那使用udp如何实现呢...

  • flutter udp multicast 组播

    写这篇文章的缘由:在Android原生端,iOS原生端,实现udp 组播相信很多小伙伴都会的,但在flutter ...

  • UDP

    Linux C编程 socket——Udp组播(多播)[https://www.jianshu.com/write...

  • Unity UDP组播

    UDP的组播:服务器接受信息的端口必须和客户端接受信息的socket 端口一致。问:一个Udp Server加入某...

  • UDP组播 socket

    相关概念: 单播、多播(组播)和广播的区别 http://blog.csdn.net/wangerge/artic...

  • 传输控制协议

    面向连接,可靠,字节流一个连接,只有两方通信UDP可以多播和组播 可靠性: tCP可以决定报文段大小,UDP由上层...

  • iOS组播的那些坑

    一、组播那些坑 1、发不出UDP数据包 1.1、 原因一:未开启网络权限 ios12后要开启网络权限才能把包发出去...

  • 小程序UDP通信

    前言 UDP通信分为单播 广播 组播,基础库2.7.0之后,小程序开始支持UDP通信,目前小程序只支持单播。 小程...

网友评论

      本文标题:iOS UDP组播

      本文链接:https://www.haomeiwen.com/subject/xmcpwctx.html