RTSP服务器端实现的一个问题

本文讨论了在网络编程中遇到的RTSP协议实现问题,特别是不同客户端和服务器端在实现上的差异导致的兼容性难题。文中提到Google Android不同版本的PLAY请求表现不同,以及Nokia客户端对于SDP协议的不同处理方式。

网络编程总是伴随有各种协议,IP、TCP/UDP、应用层都有各自的协议栈。《TCP/IP 详解》第一卷就是“协议”,这些协议大都写在RFC里面。但是有时协议描述的并不是很准确,不同的厂商可以有自己的实现。

以RTSP协议为例,分为Client和Server两个部分的实现,由于两部分的实现可能不是同一个公司,所以有时配合起来就会发生问题。首先,即使都是Google Android的系统,版本不同,表现出来的行为也不太一样。例如2.3.2版本中,PLAY request里面没有带Range信息,而这在其他Client上是比较少见的,所以有些不能处理这种问题的Server就会出现问题。因为一般的Server都是有选择地实现RTSP协议,有些细节就会被忽略。另外,在Nokia的Client里,有些是可以处理SDP协议里"a=control:”中使用相对路径的,另一些则可以处理使用绝对路径。Server端必须要能识别这些Client,然后区分对待。

这里最主要的问题是如何区别对待不同的client,到处使用if-else肯定是不优雅的。另外是否需要定义一个相关的表来记录相关问题。

虽然现在还没有考虑好,但如果能够重新设计一个server,这个问题是应该考虑的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值