android开发中,android虚拟机作为服务器与pc客户端实现socket网络通信中,android虚拟机的ip是多少

android开发中,android虚拟机作为服务器与pc客户端实现socket网络通信中,android虚拟机的ip是多少,第1张

Android使用的仅仅使用了PC 里边的一个端口

IP自然就是127001了,或者是localhost吧

关于5037口和5555口,找到了一个看起来合理的解释:

adb(Android Debug Bridge)包括三个部分:

1)adb client, 运行在PC上(为DDMS,即IDE工作)

2)adb daemon(守护进程), 运行于Emulator(为与Emulator中的VM交互工作);

3)adb server(服务进程), 运行在PC(任务管理器上有),管理着adb client和adb daemon的通信server与client通信的端口是是5037,

adb server会与emulator交互的,使用的端口有两个,一个是5554专门用于与Emulator实例的连接,那么数据可以从Emulator转发给IDE控制台了,另一个则是5555,专门与adb daemon连接为后面调试使用。

如果局域网中有dhcp服务器或者开启了路由器的dhcp服务,则都设置成自动获取就可以了。

如果没有dhcp服务器或者没开启dhcp服务,那么就设在同一个网段,一般为192168xx

子网掩码一般是2552552550

网关跟dns设成能够连外网的地址如你路由器的管理ip,这里要注意一下,如果你是adsl用路由器连接的话,那么你的ip地址应该跟路由器的管理ip是同一个网段的,比如你的路由器的管理ip是:19216811

那么你的ip地址就应该是19216812~254之间,网关跟dns都可以设置成为19216811

一般在你买了路由器后的说明书上会有路由器的管理ip地址的。

1得到局域网网段,可由自己机器的IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)

2根据IP类型,一次遍历局域网内IP地址

JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便可

代码如下::

package bean;

import javaio;

import javautil;

public class Ip{

static public HashMap ping; //ping 后的结果集

public HashMap getPing(){ //用来得到ping后的结果集

return ping;

}

//当前线程的数量, 防止过多线程摧毁电脑

static int threadCount = 0;

public Ip() {

ping = new HashMap();

}

public void Ping(String ip) throws Exception{

//最多30个线程

while(threadCount>30)

Threadsleep(50);

threadCount +=1;

PingIp p = new PingIp(ip);

pstart();

}

public void PingAll() throws Exception{

//首先得到本机的IP,得到网段

InetAddress host = InetAddressgetLocalHost();

String hostAddress = hostgetHostAddress();

int k=0;

k=hostAddresslastIndexOf("");

String ss = hostAddresssubstring(0,k+1);

for(int i=1;i <=255;i++){ //对所有局域网Ip

String iip=ss+i;

Ping(iip);

}

//等着所有Ping结束

while(threadCount>0)

Threadsleep(50);

}

public static void main(String[] args) throws Exception{

Ip ip= new Ip();

ipPingAll();

javautilSet entries = pingentrySet();

Iterator iter=entriesiterator();

String k;

while(iterhasNext()){

MapEntry entry=(MapEntry)iternext();

String key=(String)entrygetKey();

String value=(String)entrygetValue();

if(valueequals("true"))

Systemoutprintln(key+"-->"+value);

}

}

class PingIp extends Thread{

public String ip; // IP

public PingIp(String ip){

thisip=ip;

}

public void run(){

try{

Process p= RuntimegetRuntime()exec ("ping "+ip+ " -w 300 -n 1");

InputStreamReader ir = new InputStreamReader(pgetInputStream());

LineNumberReader input = new LineNumberReader (ir);

//读取结果行

for (int i=1 ; i <7; i++)

inputreadLine();

String line= inputreadLine();

if (linelength() <17 || linesubstring(8,17)equals("timed out"))

pingput(ip,"false");

else

pingput(ip,"true");

//线程结束

threadCount -= 1;

}catch (IOException e){}

}

}

}

获得经纬度后就相应的得到时间了!好像是我们项目就是用的这个时间。。。时间是unix的计算方法,就是1970年1月1日0点0分0秒到现在的秒数,用new Date(locationgetTime())就得到当前时间了,不过你得根据你的特殊情况进行判断计算了,可以再找找详细的资料,祝你好运~

以上就是关于android开发中,android虚拟机作为服务器与pc客户端实现socket网络通信中,android虚拟机的ip是多少全部的内容,包括:android开发中,android虚拟机作为服务器与pc客户端实现socket网络通信中,android虚拟机的ip是多少、如何查看手机的ip地址网关DNS掩码等、JAVA如何获取局域网内所有安卓设备的ip地址,MAC以及序列号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9597102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存