是否可以使用TCP USB ADB在桌面和Android之间建立对等连接?

是否可以使用TCP USB ADB在桌面和Android之间建立对等连接?,android,adb,webrtc,Android,Adb,Webrtc,我想建立一个应用程序,使用usb连接Android应用程序和计算机。 我已经迈出了几步。我使用adb命令转发tcp端口: adb forward tcp:9500 tcp:9500 我在安卓主机上创建了TCP服务器:127.0.0.1端口:9500。然后,我使用在Node.js上创建的127.0.0.1:9500上的TCP客户端将桌面连接到服务器。在这一点上,一切正常,设备连接。在下一步中,设备开始发送信号。 Android生成的报价: {"sdp":"v=0\r\no=- 178269561

我想建立一个应用程序,使用usb连接Android应用程序和计算机。 我已经迈出了几步。我使用adb命令转发tcp端口:

adb forward tcp:9500 tcp:9500
我在安卓主机上创建了TCP服务器:127.0.0.1端口:9500。然后,我使用在Node.js上创建的127.0.0.1:9500上的TCP客户端将桌面连接到服务器。在这一点上,一切正常,设备连接。在下一步中,设备开始发送信号。 Android生成的报价:

{"sdp":"v=0\r\no=- 1782695619798442838 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=msid-semantic: WMS ARDAMS\r\nm=video 9 UDP\/TLS\/RTP\/SAVPF 96 97 98 99 100 101 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:0\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http:\/\/www.ietf.org\/id\/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/playout-delay\r\na=extmap:7 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-content-type\r\na=extmap:8 http:\/\/www.webrtc.org\/experiments\/rtp-hdrext\/video-timing\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendrecv\r\na=msid:ARDAMS ARDAMSv0\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8\/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx\/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9\/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=rtpmap:99 rtx\/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 red\/90000\r\na=rtpmap:101 rtx\/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:127 ulpfec\/90000\r\na=ssrc-group:FID 1916955335 2452582321\r\na=ssrc:1916955335 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:1916955335 msid:ARDAMS ARDAMSv0\r\na=ssrc:1916955335 mslabel:ARDAMS\r\na=ssrc:1916955335 label:ARDAMSv0\r\na=ssrc:2452582321 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:2452582321 msid:ARDAMS ARDAMSv0\r\na=ssrc:2452582321 mslabel:ARDAMS\r\na=ssrc:2452582321 label:ARDAMSv0\r\nm=audio 9 UDP\/TLS\/RTP\/SAVPF 111 103 104 9 102 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:9 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendrecv\r\na=msid:ARDAMS ARDAMSa0\r\na=rtcp-mux\r\na=rtpmap:111 opus\/48000\/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC\/16000\r\na=rtpmap:104 ISAC\/32000\r\na=rtpmap:9 G722\/8000\r\na=rtpmap:102 ILBC\/8000\r\na=rtpmap:0 PCMU\/8000\r\na=rtpmap:8 PCMA\/8000\r\na=rtpmap:106 CN\/32000\r\na=rtpmap:105 CN\/16000\r\na=rtpmap:13 CN\/8000\r\na=rtpmap:110 telephone-event\/48000\r\na=rtpmap:112 telephone-event\/32000\r\na=rtpmap:113 telephone-event\/16000\r\na=rtpmap:126 telephone-event\/8000\r\na=ssrc:3388490788 cname:tw17+zUY4UoZ4dvY\r\na=ssrc:3388490788 msid:ARDAMS ARDAMSa0\r\na=ssrc:3388490788 mslabel:ARDAMS\r\na=ssrc:3388490788 label:ARDAMSa0\r\nm=application 9 DTLS\/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\na=ice-ufrag:Pwou\r\na=ice-pwd:uqEm2PMHFnvFSdkIPgF\/LdCh\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 52:E4:76:A8:57:37:EB:33:F8:4A:96:D3:D8:3F:FE:A8:F9:3D:7B:8D:E7:9D:AB:A0:C4:83:B9:46:A2:FC:5C:44\r\na=setup:actpass\r\na=mid:2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n","type":"offer"}
Node.js电子生成的答案:

{"type":"answer","sdp":"v=0\r\no=- 3020637264513396082 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1 2\r\na=msid-semantic: WMS\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:0\r\na=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:4 urn:3gpp:video-orientation\r\na=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=rtpmap:100 red/90000\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:127 ulpfec/90000\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 0.0.0.0\r\nb=AS:30\r\na=ice-ufrag:I5v3\r\na=ice-pwd:r+w1c6kV+e2j7GqRfdZqS+wq\r\na=fingerprint:sha-256 AA:CF:6A:FC:DB:C7:E0:63:C8:C8:FE:79:9F:18:5F:A1:79:43:D9:09:91:45:0A:28:7F:EF:4E:9E:40:9A:45:8D\r\na=setup:active\r\na=mid:2\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n"}
然后整个过程在冰连接上失败。双方无法确定合适的ice候选人。但在将设备连接到同一个本地wifi网络后,webrtc开始收集新的候选ice,对等连接成功。我将只使用USB TCP/IP方式建立连接。
有人能告诉我我做错了什么吗?

您需要转发UDP并说服软件生成正确的sdp(或自己编辑)


或者您可以设置TURN服务器。

说服软件生成正确的sdp是什么意思D