darwin之ClientSession

1.ClientSession何物?

rtsp客户端,从rtsp服务器上获取rtp流。

class ClientSession : public Task派生于task,同时内部关联了一个socket。


2.如何获取数据

SInt64 ClientSession::Run()用来接收所有的rtsp消息:在Run中,类似于状态机的形式运行。

在构造函数中初始话状态机的值。

在Run函数中判断状态值,调用不同的函数:SendDescribe,SendTCPSetup,SendPlay,SendOptions等 。




3.RTSPClient如何接收数据,是 阻塞的还是非阻塞的,如何与任务机制关联上 ?

所有的函数都会调用 DoTransaction函数,再起内部发送数据,非阻塞,直接返回 。

在Run函数中判断其返回值,如果是发送了,但发送状态未返回 ,则下一个Run函数再次判断 。

当(theErr == EINPROGRESS) || (theErr == EAGAIN)时 ,再次RequestEvent,并且 Run返回0,立即再次调用 下一个Run,查看是否获取到数据 。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunxiaopengsun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值