什么定义了2台计算机(或电话和计算机)之间的“直接通信”?用于UDP(或TCP)通信?

时间:2012-06-01 16:06:37

标签: android tcp wifi android-wifi

我想编写一个程序来无线访问笔记本电脑上的Android手机摄像头,因此,我的手机就像无线网络摄像头一样。 我想用Java实现UDP(或TCP)协议,以便在我的笔记本电脑和手机之间进行通信。

我正在考虑在我的笔记本电脑中制作一个ad-hoc无线网络并首先将手机连接到它,然后编写代码以在我的笔记本电脑和手机上的客户端插槽上创建服务器插槽。 我知道这段代码适用于服务器和客户端之间的“直接通信”。但这种ad-hoc网络通信方法是否算作“直接通信”? 如果没有,我该怎么做才能实现这个目标?

首先感谢您阅读我的整个问题,并且, 非常感谢你能为我解答这个问题

:)

1 个答案:

答案 0 :(得分:0)

首先:不要专注于ad-hoc网络。在大多数情况下,具有基础设施模式接入点的WiFi将可用。如果在旅途中,所有最新版本的Android都可以充当无线接入点。

因此,我们假设两个设备都连接到同一个网络,并且能够相互联系(使用IP协议) - 换句话说,它们能够相互ping。您必须解决的下一个问题是:两个应用程序如何找到对方? Bonjour / Zeroconf可能是一个解决方案(见Are there any other Java libraries for bonjour/zeroconf apart from JMDNS?)。

接下来的问题是:您想要使用哪种协议?你提到过TCP和UDP。在大多数情况下,UDP将用于传输视频数据,因为您具有较低的延迟,并且视频编解码器可以容忍丢失的数据包。

使用此信息,您可以创建ServerSocket并(从客户端)知道连接到它的位置。