UDP链接建立、关闭

//建立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!");

    

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值