Android 通过我的应用程序通过wifi连接两个或多个设备

Android 通过我的应用程序通过wifi连接两个或多个设备,android,sockets,android-wifi,Android,Sockets,Android Wifi,我希望我的应用程序能够通过同一wifi网络连接到其他设备并传输一些数据,即手机A和手机B安装我的应用程序并在同一网络上。我目前能够连接两个设备,一个作为服务器,另一个作为客户端,但这是对服务器设备的静态IP引用。在开放的世界中,这个IP当然会改变,所以我的问题是如何让电话A启动为服务器设备,然后让电话B查看网络上的服务器设备并连接到它。因此,服务器设备将接受此客户端连接,并在建立连接时执行所需的操作。这可能吗 我相信您会有一个设备监听端口号x,而客户端版本(设备B)会寻找相同的端口号x。这可能是

我希望我的应用程序能够通过同一wifi网络连接到其他设备并传输一些数据,即
手机A
手机B
安装我的应用程序并在同一网络上。我目前能够连接两个设备,一个作为服务器,另一个作为客户端,但这是对服务器设备的静态
IP
引用。在开放的世界中,这个
IP
当然会改变,所以我的问题是如何让
电话A
启动为服务器设备,然后让
电话B
查看网络上的服务器设备并连接到它。因此,服务器设备将接受此客户端连接,并在建立连接时执行所需的操作。这可能吗

我相信您会有一个设备监听端口号x,而客户端版本(设备B)会寻找相同的端口号x。这可能是错误的

这是DNS的作业。如果您没有可用的DNS服务器,您可以发明一种发现协议,在该协议中,机器a定期多播其正在侦听的IP和端口


机器B加入多播组。一旦机器B知道A的地址和端口,它就可以使用您已有的代码打开一个套接字。

如果可以抓取到我想要使用的端口,我正在考虑类似的事情。但我不知道如何做到这一点,如果这种方法是可行的,谢谢你的回答。你有创建这样一个广播的示例吗?我没有现成的示例,但这是DDS(数据分发系统)、CORBA、,事实上,DDS可能适合您的需要,尽管与您现在所做的相比,它有点重。