【发布时间】:2011-04-21 06:45:22
【问题描述】:
我只想为andorid 编写一个应用程序,它与iphone 或skype 的视频上的facetime 非常相似。只是想实现一个P2P连接来进行视频传输和显示。有没有人有一些相关的文件或代码。我想知道的一件事是如何在两部手机之间建立 p2p 连接?只需要 IP 地址来建立 tcp 连接,或者我需要一些其他信息。另外,如果两部手机不在同一个局域网或它们之间有防火墙,我该怎么办?
谢谢!
【问题讨论】:
标签: android
我只想为andorid 编写一个应用程序,它与iphone 或skype 的视频上的facetime 非常相似。只是想实现一个P2P连接来进行视频传输和显示。有没有人有一些相关的文件或代码。我想知道的一件事是如何在两部手机之间建立 p2p 连接?只需要 IP 地址来建立 tcp 连接,或者我需要一些其他信息。另外,如果两部手机不在同一个局域网或它们之间有防火墙,我该怎么办?
谢谢!
【问题讨论】:
标签: android
通常情况下,UDP 用于 P2P 音频/视频等应用程序,而不是 TCP。 UDP 允许丢弃的数据包,而 TCP 不允许。对于类似于您所描述的内容,使用诸如 SIP 之类的协议来协商连接。使用 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 注册商与他们联系,他们最终将其转发给客户。
【讨论】: