Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 开发可与仿真器或电话一起使用的网络应用程序的最佳方法_Android_Networking - Fatal编程技术网

Android 开发可与仿真器或电话一起使用的网络应用程序的最佳方法

Android 开发可与仿真器或电话一起使用的网络应用程序的最佳方法,android,networking,Android,Networking,假设您有三部Android手机(A、B和C)连接到同一接入点。所以每部手机都有不同的IP地址。例如: A为192.168.1.50 B为192.168.1.60 C为192.168.1.70 在每一个我都安装了相同的应用程序。此应用程序中有两个插座: datagramsocketsendsocket=newdatagramsocket(); DatagramSocket receiveSocket=新DatagramSocket(55000); 由于每部手机的IP地址不同,因此每部手机都可

假设您有三部Android手机(A、B和C)连接到同一接入点。所以每部手机都有不同的IP地址。例如:

  • A为192.168.1.50
  • B为192.168.1.60
  • C为192.168.1.70
在每一个我都安装了相同的应用程序。此应用程序中有两个插座:

datagramsocketsendsocket=newdatagramsocket();
DatagramSocket receiveSocket=新DatagramSocket(55000);
由于每部手机的IP地址不同,因此每部手机都可以向其他手机发送数据包。例如,要从B向a发送数据包:

InetAddress=InetAddress.getByName(“192.168.1.50”);
byte[]data=“Hello”.getBytes();
DatagramPacket sendPacket=新的DatagramPacket(数据,数据长度,地址,55000);
sendSocket.send(sendPacket);
现在的问题是:在同一台机器上使用三个仿真器开发和调试此应用程序的最佳方法是什么,以便在仿真器中运行它的代码与在实际设置中运行它的代码几乎相同?

我所做的尝试:

  • 使用提供的代码,我在同一台机器上启动了两个模拟器,并打印了它们的IP地址,为两个模拟器获得了相同的IP地址:
    fe80::5054:ff:fe12:3456%eth0
    。所以这是一条死胡同
  • 仅启动了两个模拟器,每个模拟器位于接收和发送套接字的特定和不同端口上。这种方法工作得很好,但是它不能用于更多的机器,因为重定向和部署开始变得相当麻烦和复杂。更不用说我必须使用10.0.2.15和10.0.2.2 IP地址才能让它工作

我没有什么好主意,这是一种变通方法,但您可以创建两个虚拟机(我用于虚拟机,而且是免费的),在它们上安装Linux(可能),安装SDK并将代码放在它们上进行测试


更好的主意:创建多个AVD。在每个应用程序上调试应用程序。就在11楼,退出。关闭AVD。启动其他AVD。对每个AVD重复上述步骤。准备好后,启动所有虚拟机并从模拟器上的“应用程序”菜单启动应用程序。

我没有什么好主意,这是一种解决办法,但您可以创建两个虚拟机(我用于虚拟机,而且是免费的),在它们上安装Linux(可能),安装SDK并将代码放在它们上进行测试


更好的主意:创建多个AVD。在每个应用程序上调试应用程序。就在11楼,退出。关闭AVD。启动其他AVD。对每个AVD重复上述步骤。准备好后,启动所有模拟器并从模拟器上的应用程序菜单启动应用程序。

对于该
%eth0
,两个模拟器上的
eth0
mac地址是否相同?(可能是主机?)或者每个模拟器的
eth0
地址是否不同?(可能是随机生成的?)对于该
%eth0
,两个模拟器上的
eth0
mac地址是否相同?(可能是主机?)或者每个模拟器的
eth0
地址是否不同?(可能是随机生成的?)