zoukankan      html  css  js  c++  java
  • 基于UDP iOS 聊天

    
    
    //首先建立基于UDP的Socket连接  AsyncUdpSocket *updSocket
    -(void)openUDPServer{
        //初始化udp
        AsyncUdpSocket *tempSocket=[[AsyncUdpSocket alloc] initWithDelegate:self];
        self.updSocket=tempSocket;
        [tempSocket release];
        //绑定端口
        NSError *error = nil;
        [self.updSocket bindToPort:4333 error:&error];
        [self.updSocket joinMulticastGroup:@"224.0.0.1" error:&error];
        
           //启动接收线程
        [self.updSocket receiveWithTimeout:-1 tag:0];
        
    }
    
    
    //连接建好后处理相应send Events
    -(void)sendMessage:(NSString*)message
    {
        NSMutableString *sendString = [NSMutableString stringWithCapacity:100];
        [sendString appendString:message];
        //开始发送
        BOOL res = [self.updSocket sendData:[sendString dataUsingEncoding:NSUTF8StringEncoding] 
                                     toHost:@"224.0.0.1"
                                       port:4333 
                                withTimeout:-1 
                                        tag:0];
        
        NSLog(@"%@",sendString);
        if(res)
        {
            NSLog(@"xxxxffff");
        }
        else {
            NSLog(@"error");
        }
    }
    
    
    
    -(BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
    {
        NSLog(@"onUdpSocket successful");
        //已经处理完毕  do something
        return YES;
    }
    
    -(void)onUdpSocket:(AsyncUdpSocket *)sock didNotSendDataWithTag:(long)tag dueToError:(NSError *)error
    {
        //无法发送时,返回的异常提示信息  do something
        NSLog(@"error1");
    }
    
    -(void)onUdpSocket:(AsyncUdpSocket *)sock didNotReceiveDataWithTag:(long)tag dueToError:(NSError *)error
    {
        //无法接收时,返回异常提示信息   do something
        NSLog(@"error2");
    }
    
    
    
     
  • 相关阅读:
    SSL/TLS协议运行机制的概述(转)
    返回键捕获 应用程序退出的两种方式(转)
    openstack云5天资料
    数据挖掘十大经典算法
    中国大推力矢量发动机WS15 跨入 世界先进水平!
    BIEE在creating domain步骤停止的解决的方法
    suggest的使用方法
    二叉排序树
    vi 命令 使用方法
    Android Studio 初体验
  • 原文地址:https://www.cnblogs.com/qingjoin/p/2773601.html
Copyright © 2011-2022 走看看