Android WifiDisplay分析三:RTSP交互以及数据传输

Android WifiDisplay分析三:RTSP交互以及数据传输

ID:42577296

大小:255.55 KB

页数:13页

时间:2019-09-18

Android WifiDisplay分析三:RTSP交互以及数据传输_第1页
Android WifiDisplay分析三:RTSP交互以及数据传输_第2页
Android WifiDisplay分析三:RTSP交互以及数据传输_第3页
Android WifiDisplay分析三:RTSP交互以及数据传输_第4页
Android WifiDisplay分析三:RTSP交互以及数据传输_第5页
资源描述:

《Android WifiDisplay分析三:RTSP交互以及数据传输》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、前面我们分析到WifiDisplaySource会调用ANetworkSession的接口去创建一个socket,并在这个socket上监听是否有客户端的连接请求。先来看看WifiDisplay规范的一些流程图:从之前的一篇文章中,当ANetworkSession创建好RTSP的listensocket后,就会把它加入到selelct中等待对方的连接,那我们首先来看ANetworkSession的threadLoop方法:[java] viewplain copy 1.void ANetworkSession::threadLoop() 

2、{  1.  2.    int res = select(maxFd + 1, &rs, &ws, NULL, NULL /* tv */);  3.  4.    {  5.        Mutex::Autolock autoLock(mLock);  6.  7.        List > sessionsToAdd;  8.  9.        for (size_t i = mSessions.size(); res > 0 && i-- > 0;) {  10.            const

3、 sp &session = mSessions.valueAt(i);  11.  12.            int s = session->socket();  13.  14.            if (s < 0) {  15.                continue;  16.            }  17.  18.            if (FD_ISSET(s, &rs) 

4、

5、 FD_ISSET(s, &ws)) {  19.                --res;  20.

6、            }  21.  22.            if (FD_ISSET(s, &rs)) {  23.                if (session->isRTSPServer() 

7、

8、 session->isTCPDatagramServer()) {  24.                    struct sockaddr_in remoteAddr;  25.                    socklen_t remoteAddrLen = sizeof(remoteAddr);  26

9、.  27.                    int clientSocket = accept(  28.                            s, (struct sockaddr *)&remoteAddr, &remoteAddrLen);  29.  30.                    if (clientSocket >= 0) {  31.                        status_t err = MakeSocketNonBlocking(clientSocket);  

10、32.  33.                        if (err != OK) {  34.  35.                        } else {  36.                            in_addr_t addr = ntohl(remoteAddr.sin_addr.s_addr);  37.  38.                            ALOGI("incoming connection from %d.%d.%d.%d:%d "  39.       

11、                           "(socket %d)",  1.                                  (addr >> 24),  2.                                  (addr >> 16) & 0xff,  3.                                  (addr >> 8) & 0xff,  4.                                  addr & 0xff,  5.           

12、                       ntohs(remoteAddr.sin_port),  6.                                  clientSo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。