当前位置:  编程技术>移动开发
本页文章导读:
    ▪RTP,RTSP的差异        RTP,RTSP的区别   1.前言。     andorid视频传输用协议比较好,可以省去了上层开发。视频传输用rtsp比较好,因为它是双向的。下面对这两种传输协议进行下研究。  2.两种协议对比  RTP(Rea.........
    ▪ 包名,种名启动apk        包名,类名启动apk.   PackageInfo packageinfo = showpackage.get(position); final String packageName = packageinfo.packageName;//获得包名,启动activity的一个参数,position一般指的是listview和gridview中的适配器中的一.........
    ▪ AsyncUdpSocket的简略应用和 fetchSSIDInfo 获取设备sid       AsyncUdpSocket的简单应用和 fetchSSIDInfo 获取设备sid - (id)fetchSSIDInfo {     NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();     NSLog(@"%s: Supported interfaces: %@", __func__, ifs);     id info = nil;     for (NSString .........

[1]RTP,RTSP的差异
    来源: 互联网  发布时间: 2014-02-18
RTP,RTSP的区别
  1.前言。
     andorid视频传输用协议比较好,可以省去了上层开发。视频传输用rtsp比较好,因为它是双向的。下面对这两种传输协议进行下研究。
  2.两种协议对比
  RTP(Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输协议。RTP被定义为在一对一或一对多的传输情况下工作。其目的是提供时间信息和实现流同步。但RTP通常使用UDP来传送数据。但RTP也可以在TCP或ATM等其他协议之上工作。当应用程序开始一个RTP会话时将使用两个端口:一个给RTP一个给 RTCP。RTP本身并不能为接顺序传送数据包提供可靠的传送机制。也不提供流量控制或拥塞控制。它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现。而是作为应用程序代码的一部分。实时传送控制协议RTCP.RTCP(Real-time Transport Control Protocol)和RTP提供流量控制和拥塞控制。在RTP会话期间,各参与者周期性地传送RTCP包.RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料.因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化。因而特别适合传送网上的实时数据。RTSP实时流协议

  RTSP(Real-time Streaming Protocol)是由Real Networks和Netscape共同中提出的。该协议定义了一对多应用程序如何有效地通过lP网络传送多媒体数据。RTSP在体系结 构上位于RTP和RTCP之上。它使用TCP或RTP完成数据传输。HTTP与RTSP相比。HTTP传送HTML。而RTP传送是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。
    3.总结。
    (1)RTP协议通常是UDP,而RTSP则是html用http,视频用udp.
    (2)RTP是单向的,而RTsp是双向的。

    
[2] 包名,种名启动apk
    来源: 互联网  发布时间: 2014-02-18
包名,类名启动apk.

 
PackageInfo packageinfo = showpackage.get(position); 
final String packageName = packageinfo.packageName;//获得包名,启动activity的一个参数,position一般指的是listview和gridview中的适配器中的一个参数 

    final ActivityInfo appinfo=packageinfo.activities[0];//获得应用的第一个activity 
String activityName=appinfo.name;//activityName启动activity的第二个参数 
                 Intent intent=new Intent(); 
               intent.setComponent(new ComponentName(packageName, activityName)); 
                 startActivity(intent);
 

    
[3] AsyncUdpSocket的简略应用和 fetchSSIDInfo 获取设备sid
    来源: 互联网  发布时间: 2014-02-18
AsyncUdpSocket的简单应用和 fetchSSIDInfo 获取设备sid

- (id)fetchSSIDInfo

{

    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();

    NSLog(@"%s: Supported interfaces: %@", __func__, ifs);

    id info = nil;

    for (NSString *ifnam in ifs) {

        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if (info && [info count]) {

            break;

        }

    }

    return info ;

}

 

 

 

 

 

 

用socket添加 两个文件 AsyncUdpSocket.h  和 AsyncUdpSocket.m 

SystemControm.framework    CFNetwork.framework

 

#import "ViewController.h"

 

#import <SystemConfiguration/CaptiveNetwork.h>

 

@interfaceViewController ()

 

@property(nonatomic,strong) AsyncUdpSocket *socket;

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad

{

    [superviewDidLoad];

    self.socket = [[AsyncUdpSocketalloc] initWithDelegate:self];

    

    NSError *error = nil;

    [self.socket bindToPort:3000 error:&error];

    [self.socketenableBroadcast:YESerror:&error];

    [self.socketjoinMulticastGroup:@"239.255.255.250"error:&error];

    

    if (error) {

        NSLog(@"error: %@",error);

    }

    

    [self.socketreceiveWithTimeout:-1tag:1];

    

    NSLog(@"start udp server");

    

    

    NSDictionary *ifs = [self fetchSSIDInfo]; //获取sid信息。

    

    NSString *ssid = [[ifs objectForKey:@"SSID"] lowercaseString];

    NSLog(@"ssid:%@",ssid);

    _wifiName.text = [NSString stringWithFormat:@"Wifi name:\n%@",ssid];

}

 

- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port{

    NSString *receiveData = [[NSStringalloc] initWithData:data encoding:NSUTF8StringEncoding];

    NSLog(@"received data: %@",receiveData);

    

    _data.text = [NSString stringWithFormat:@"Received data:\n%@",receiveData];

    

    [self.socket receiveWithTimeout:-1 tag:1];

    returnYES;

}

 

 

- (id)fetchSSIDInfo

{

    NSArray *ifs = (__bridge id)CNCopySupportedInterfaces();

    NSLog(@"%s: Supported interfaces: %@", __func__, ifs);

    id info = nil;

    for (NSString *ifnam in ifs) {

        info = (__bridge id)CNCopyCurrentNetworkInfo((__bridge CFStringRef)ifnam);

        if (info && [info count]) {

            break;

        }

    }

    return info ;

}

 


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3