AsyncUdpSocket的简单应用和 fetchSSIDInfo 获取设备sid

- (id)fetchSSIDInfo

{

    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();

    NSLog(@"%s: Supported interfaces: %@", __func__, ifs);

    id info = nil;

    for (NSString *ifnam in ifs) {

        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if (info && [info count]) {

            break;

        }

    }

    return info ;

}

 

 

 

 

 

 

用socket添加 两个文件 AsyncUdpSocket.h  和 AsyncUdpSocket.m 

SystemControm.framework    CFNetwork.framework

 

#import "ViewController.h"

 

#import <SystemConfiguration/CaptiveNetwork.h>

 

@interfaceViewController ()

 

@property(nonatomic,strong) AsyncUdpSocket *socket;

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad

{

    [superviewDidLoad];

    self.socket = [[AsyncUdpSocketalloc] initWithDelegate:self];

    

    NSError *error = nil;

    [self.socket bindToPort:3000 error:&error];

    [self.socketenableBroadcast:YESerror:&error];

    [self.socketjoinMulticastGroup:@"239.255.255.250"error:&error];

    

    if (error) {

        NSLog(@"error: %@",error);

    }

    

    [self.socketreceiveWithTimeout:-1tag:1];

    

    NSLog(@"start udp server");

    

    

    NSDictionary *ifs = [self fetchSSIDInfo]; //获取sid信息。

    

    NSString *ssid = [[ifs objectForKey:@"SSID"] lowercaseString];

    NSLog(@"ssid%@",ssid);

    _wifiName.text = [NSString stringWithFormat:@"Wifi name:\n%@",ssid];

}

 

- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{

    NSString *receiveData = [[NSStringalloc] initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"received data: %@",receiveData);

    

    _data.text = [NSString stringWithFormat:@"Received data:\n%@",receiveData];

    

    [self.socket receiveWithTimeout:-1 tag:1];

    returnYES;

}

 

 

- (id)fetchSSIDInfo

{

    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();

    NSLog(@"%s: Supported interfaces: %@", __func__, ifs);

    id info = nil;

    for (NSString *ifnam in ifs) {

        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if (info && [info count]) {

            break;

        }

    }

    return info ;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值