zoukankan      html  css  js  c++  java
  • iOS  UDP 广播 AsyncSocket 用法

    因为业务需要,需要用广播发送一个字段,在iOS开发中,用到了AsynSocket。
    1.定义一个属性,负责发送和接受数据

    #define YX_Local_Host @"255.255.255.255"

    #define YX_Lockl_Port 48899

    @property(nonatomic,strong)AsyncUdpSocket *sendSocket;
     
    2.在viewDidload上初始化这个socket
    self.sendSocket=[[AsyncUdpSocket alloc]initWithDelegate:self];
    //需要有这个初始化,不知道为什么
     [self.sendSocket bindToAddress:@"0.0.0.0" port:5666 error:nil];
     [self.sendSocket receiveWithTimeout:-1 tag:0];
    3.在需要的时候出发它,我这里是在button点击事件出发的
    NSString *sendString=@"HF-A11ASSISTHREAD";
        NSData *data=[sendString dataUsingEncoding:NSUTF8StringEncoding];
        [self.sendSocket sendData:data toHost:YX_Local_Host port:YX_Lockl_Port withTimeout:30 tag:0];
        [self.sendSocket enableBroadcast:YES error:nil];
     
    4.发送出去以后,使用AsyncUdpSocket的代理,接受数据,并对需要的数据进行处理。
    -(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{
      
        NSString *receiveData=[[NSString alloc ]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"-----receiveData----%@---------",receiveData);
        [self.sendSocket receiveWithTimeout:-1 tag:0];
        return YES;
    }

    - (void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{
        NSLog(@"没有收到");
    }
     
     
     
  • 相关阅读:
    BZOJ3224普通平衡树——旋转treap
    我有一个梦想
    Python自动化测试入门
    Java为何这么难学?
    jmeter正则表达式书写
    fiddler抓包后Jmeter实现登录接口
    JMeter如何使用用户定义的变量
    第一篇博客说明
    React笔记_(5)_react语法4
    React笔记_(4)_react语法3
  • 原文地址:https://www.cnblogs.com/ljlkfx/p/4973438.html
Copyright © 2011-2022 走看看