118 lines
2.7 KiB
Objective-C
118 lines
2.7 KiB
Objective-C
//
|
|
// IfishUDPBroadCastHelper.m
|
|
// Ifish
|
|
//
|
|
// Created by imac on 16/9/12.
|
|
// Copyright © 2016年 lianxiang. All rights reserved.
|
|
//
|
|
|
|
#import "IfishUDPBroadCastHelper.h"
|
|
#import "LxGetCurrentIp.h"
|
|
#import "AppDelegate.h"
|
|
@implementation IfishUDPBroadCastHelper
|
|
|
|
+ (IfishUDPBroadCastHelper *)sharedInstance{
|
|
|
|
static IfishUDPBroadCastHelper *sharedInstace = nil;
|
|
static dispatch_once_t onceToken;
|
|
dispatch_once(&onceToken, ^{
|
|
|
|
sharedInstace = [[self alloc] init];
|
|
|
|
|
|
});
|
|
|
|
return sharedInstace;
|
|
}
|
|
|
|
|
|
-(void)broadCaseUDP{
|
|
|
|
self.loopTimer = [NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(sendConnectHotspotSoketdata) userInfo:nil repeats:YES];
|
|
|
|
}
|
|
|
|
|
|
-(void)sendLoopSoketdata{
|
|
|
|
//收9954
|
|
|
|
NSString * currentIp = [LxGetCurrentIp currentIPAddress];
|
|
|
|
NSArray *array = [currentIp componentsSeparatedByString:@"."];
|
|
NSMutableArray *mutArr= [NSMutableArray arrayWithArray:array];
|
|
[mutArr replaceObjectAtIndex:3 withObject:@"255"];
|
|
NSArray *newarray=mutArr;
|
|
|
|
NSString* hostS = [newarray componentsJoinedByString:@"."];
|
|
|
|
|
|
self.clientSocket = [[AsyncUdpSocket alloc] initWithDelegate:self];
|
|
//120.55.190.56 服务器IP 指令中用
|
|
NSString *request=@"0007000000000000000000000000273132302e35352e3139302e353600000000000000bbbb0000";
|
|
|
|
NSData *data=[dataContorl stringToHexData:request];
|
|
|
|
UInt16 port =333;
|
|
UInt16 bindPort =9954;
|
|
|
|
NSError *error;
|
|
|
|
[self.clientSocket enableBroadcast:YES error:&error];
|
|
|
|
[self.clientSocket sendData:data toHost:hostS port:port withTimeout:-1 tag:1];
|
|
|
|
//本地接收端口
|
|
[self.clientSocket bindToPort:bindPort error:&error];
|
|
|
|
[self.clientSocket receiveWithTimeout:-1 tag:0];
|
|
}
|
|
|
|
|
|
-(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
|
|
{
|
|
NSString* result;
|
|
|
|
result = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
|
|
|
|
NSLog(@"didReceiveData%@",result);
|
|
NSLog(@"port%hu",port);
|
|
AppDelegate *app =(AppDelegate*)[UIApplication sharedApplication].delegate;
|
|
[app.window makeToast:@"切换成功"];
|
|
[self.loopTimer invalidate];
|
|
|
|
|
|
|
|
return YES;
|
|
|
|
}
|
|
|
|
-(void)onUdpSocketDidClose:(AsyncUdpSocket *)sock{
|
|
|
|
[self.loopTimer invalidate];
|
|
NSLog(@"关闭");
|
|
}
|
|
|
|
|
|
-(void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag{
|
|
|
|
NSLog(@"didSendData");
|
|
|
|
}
|
|
|
|
|
|
-(void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error{
|
|
|
|
NSLog(@"dueToError%@",error);
|
|
[self.loopTimer invalidate];
|
|
}
|
|
|
|
|
|
-(void)dealloc{
|
|
|
|
[self.loopTimer invalidate];
|
|
|
|
}
|
|
|
|
@end
|