我在雷电模拟器怎么改设备上新建模拟器,多个模拟器的设备信息是否一样,或者说ip是否会一样

 ps:模拟器做服务器PC机做客户端。洳果通过wifi连接的话直接访问IP就行不用重定向。

// 开一个新的线程来侦听客户端连接及发来的信息和打开相应网站 // 循环侦听客户端连接请求 // 等待客户端发送打开网站的消息

下面是从别人那转过来的:

最近在做UDP、TCP通信相关的项目在做的过程中发现:同一台电脑的两个模拟器之間不能通信,

   其中第一个端口号是模拟器1的端口,第二个端口号是模拟器2端口(端口映射)
   执行此命令之后,会把模拟器 22221 端口发送的数据通过本机转到模拟器的22221端口就能从22221端口接收UDP数据包了

进行TCP通信的时候本机上启动两个模拟器本机(PC)和模拟器时发现两个模拟器嘚IP地址都是完全一样的,所以要实现两个模拟器之间的通信使用模拟器的IP地址是办不到的。必须进行端口映射

接下来是如何在两个模擬器之间进行通信:同样的先进行端口映射:adb –s emulator -模拟器  forward  tcp:端口号 tcp:端口号(先运行模拟器).代码如下:

因为模拟器5556连接的地址10.0.2.2:8080相当于本机的127.0.0.1:8080,由于进荇了端口映射本机IP8080上的连接请求都映射到上,因此模拟器5556的请求会发送到5554上.

当PC与手机连通时,我们可以通过Socket连接来实现PC与手机间的通信

这裏我们先讨论手机做为Server端、PC做为Client端的情况。

写Java Socket的时候我们都知道,要连上这个Server只需要知道Server的IP地址和Port号就可以了。这里因为手机是和PC相連的因此麻烦就在于怎么定位这个IP地址和Port号。

IP地址其实也就是本机地址而port号则需要有一点点技巧,需要用到adb工具查看adb帮助中,有一條forward命令可以用于完全任务:

所以Client代码可以如下实现:

即可实现PC与Android之间的通信这里注意Android端需要有网络访问的权限:

? adb方式,需要安装手机嘚usb驱动直接程序中调用adb命令。 
如果是通过 wifi进行交互设置IP通过socket就可以进行通信了。如果是使用USB则需要使用adb里面的端口重定向(端口重定姠是指:在PC端通过SOCKET向手持机发送连接时当PC尝试连接本机的127.0.0.1:2525时,当使用重定向端口号后adb forward tcp:2525 tcp:2525时当PC尝试连接127.0.0.1:2525时,PC机会将发送此端口的数据转發至手持机)如果想通过SOCKET方式通过USB连接手持机,可能要写一套适用的SOCKET 协议还要补充一点的是:当把手机当作server端时则需要使用端口重定姠,如果是把PC当SERVER时则通过手持机可以直接通过SOCKET连接即可 
2. PC客户端与Android服务端的Socket同步通信(USB),通讯的具体过程及实现方法请查看内嵌文件 

3. PC機作为服务端与Android间的通信,具体实现方法请查看内嵌文件 

android施用的仅只施用了pc 里边的1个端口

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

我要回帖

更多关于 雷电模拟器怎么改设备 的文章

 

随机推荐