android - 如何在两部手机之间建立p2p连接?

标签 android

我只是想为andorid 编写一个应用程序,它非常类似于iphone 上的facetime 或skype 的视频。只是想为视频传输和显示实现一个 P2P 连接。是否有人拥有相关的文档或代码。还有一件事我想知道的是如何在两部手机之间建立p2p连接?只需要 IP 地址来建立 tcp 连接,或者我需要一些其他信息。另外,如果两部手机不在同一个 LAN 中或它们之间有防火墙,我该怎么办?

谢谢!

最佳答案

通常,UDP 用于 P2P 音频/视频等应用程序,而不是 TCP。 UDP 容忍丢弃的数据包,而 TCP 则不能。对于类似于您所描述的内容,使用 SIP 等协议(protocol)来协商连接。使用 SIP,我向 SIP 注册商注册我的存在,这是我出现的地方。我可能有一个像 user@my.cool.sip.example.com 这样的句柄。 SIP 注册器位于 my.cool.sip.example.com 上并维护所有附加用户及其 IP 地址的列表。连接请求通过知道如何联系用户的 SIP 注册器代理。由于注册商的所有用户都与他们的 SIP 注册商建立了传出连接,因此最初建立联系不需要防火墙穿孔。另一个 SIP 客户端的名称可能类似于 user2@their.favorite.sip.example.com。他们将连接到他们的 SIP 注册器,就像我连接到我的一样。当他们想联系我时,他们会向他们的注册商发送一条消息,然后再将消息转发给我的 SIP 注册商。当我发回响应时,我将其发送到我的 SIP 注册商,并使用他们的发件人地址作为目的地。我的 SIP 注册商联系他们的注册商,后者最终将其转发给客户。

关于android - 如何在两部手机之间建立p2p连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735787/

相关文章:

Android 10 - netstat 执行无法正常工作

java - 如何在打印屏幕中裁剪图像?

android - 如何在 Android 上启用缩放?

android - 以编程方式屏蔽/取消屏蔽密码字段?

android - 线性布局中按钮的边距

android - 使用 rxjava-android 的问题

android - android中 "ViewHolder"类的问题

java - 无法编译apk,Itext和Proguard冲突

android - 为Android生成二维码图片

带有下拉列表的android edittext