从零开始 - iOSRTMP推流篇(1)

一:想从0开始首页需要RTMP服务器吧
请看去年写的这篇文章 30分钟跑直播 客户端(iOS)+服务端(nginx--rtmp-module)

二:从哪开始呢~啥都不管 我第一步先从建立链接开始吧
 

- (void)connectToServer:(NSString *)host port:(UInt32)port {
    if (port <= 0) {
        //RTMP默认端口,1935
        port = 1935;
    }
    //CFNetwork 接口是基于 C 的,下面的接口用于创建一对 socket stream,一个用于读取,一个用于写入:
    CFReadStreamRef readStream;
    CFWriteStreamRef writeStream;
    
    //建立socket链接
    CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)(host), port, &readStream, &writeStream);
    
    //引用
    _inputStream = (__bridge_transfer NSInputStream *)(writeStream);
    _outputStream = (__bridge_transfer NSOutputStream *)(readStream);
    _inputStream.delegate = self;
    _outputStream.delegate = self;
    
    [_outputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
    [_inputStream scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
    
    [_inputStream open];
    [_outputStream open];
}

- (void)stream:(NSStream *)aStream handleEvent:(NSStreamEvent)eventCode {
    switch (eventCode) {
        case NSStreamEventNone: {
            return;
        }
        case NSStreamEventOpenCompleted: {
            if (_inputStream == aStream ) {
                NSLog(@"连接成功");
            }
            break;
        }
        case NSStreamEventHasBytesAvailable: {
            NSLog(@"有字节可读");
            
            break;
        }
        case NSStreamEventHasSpaceAvailable: {
            NSLog(@"可以发送字节");
            
            break;
        }
        case NSStreamEventErrorOccurred: {
            NSLog(@"连接出现错误");
            
            break;
        }
        case NSStreamEventEndEncountered: {
            NSLog(@"连接结束");
            
            break;
        }
    }
}

 

转载于:https://my.oschina.net/zhaodacai/blog/1589799

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值