//建立UDP链接
-(void)openUDP
{
// [self closeUDP];
heartData = [[NSMutableDataalloc]init];
heartStr = [[NSMutableStringalloc]init];
udpSocket = [[[AsyncUdpSocketalloc]initWithDelegate:self]retain];
NSError *error =nil;
BOOL flagBind = [udpSocketbindToPort:UDPPorterror:&error];
[udpSocketenableBroadcast:YESerror:&error];
if (error)
{
NSLog(@"绑定错误error=:%@",error);
}
//每3秒发送一次数据
hearbeartTimer = [[NSTimerscheduledTimerWithTimeInterval:3target:selfselector:@selector(sendeUDPHeart:)userInfo:@"testHeart"repeats:YES]retain];
[hearbeartTimerfire];
[udpSocketreceiveWithTimeout:-1tag:1];
}
-(void)sendeUDPHeart:(id)sender
{
[udpSocketsendData:@"服务器需要的数据id等信息" dataUsingEncoding:NSUTF8StringEncoding]
toHost:@"123.123.132.12"
port:1234
withTimeout:-1tag:123];
}
//关闭UDP 连接
-(void)closeUDP
{
if (udpSocket)
{
udpSocket.delegate =nil;
[udpSocketclose];
[udpSocketrelease];
udpSocket =nil;
}
if (hearbeartTimer)
{
[hearbeartTimerinvalidate];
[hearbeartTimerrelease];
hearbeartTimer=nil;
}
}
- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
{
//成功后建立TCP连接
return YES;
}
-(void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error
{
NSLog(@"Message not received for error: %@", error);
}
-(void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error
{
NSLog(@"Message not send for error: %@",error);
}
-(void)onUdpSocket:(AsyncUdpSocket *)sock didSendDataWithTag:(long)tag
{
NSLog(@"Message send success!");
}
-(void)onUdpSocketDidClose:(AsyncUdpSocket *)sock
{
NSLog(@"socket closed!");
}